Bonjour à tous.

Je débute dans les applications mobiles sous android.
Je connais déjà le langage JAVA et j'ai déjà compris comment créer une application mobile.

Mais j'ai un soucis avec la fonction getCurrentPLace de l'API Google.

J'arrive à afficher une carte et a récupérer la position GPS du téléphone et l'afficher sur une carte. Mais quand je souhaite récupérer les points d'intérêt autour de moi, cela ne fonctionne pas.

L'erreur qui apparait sur le Log d'android Studio est la suivante:

com.google.android.gms.persistent I/Places: ?: Couldn't find platform key file.

Je vous ajoute ce qu'il y a avant et après..

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
05-15 11:25:12.159 4609-4609/mbmcorp.trouvetonterrain I/MapGoogle: Client conneccté dans onConnected
05-15 11:25:12.178 4609-4609/mbmcorp.trouvetonterrain I/MapGoogle: current locationLocation[fused 48.739882,2.410627 acc=20 et=+3m29s942ms alt=0.0]
05-15 11:25:12.261 1626-3093/system_process I/GnssLocationProvider: WakeLock acquired by sendMessage(3, 0, com.android.server.location.GnssLocationProvider$GpsRequest@bcb57be)
05-15 11:25:12.306 1626-1643/system_process I/GnssLocationProvider: WakeLock released by handleMessage(3, 0, com.android.server.location.GnssLocationProvider$GpsRequest@bcb57be)
05-15 11:25:12.333 4609-4620/mbmcorp.trouvetonterrain I/art: Background partial concurrent mark sweep GC freed 2785(146KB) AllocSpace objects, 4(1872KB) LOS objects, 19% free, 16MB/20MB, paused 8.621ms total 128.213ms
05-15 11:25:12.337 2107-2635/com.google.android.gms.persistent I/Places: ?: Couldn't find platform key file.
05-15 11:25:12.346 2107-3173/com.google.android.gms.persistent W/Places: Last known location with age 7354547751930 is too old, falling back to location updates
05-15 11:25:12.383 1626-1640/system_process I/GnssLocationProvider: WakeLock acquired by sendMessage(3, 0, com.android.server.location.GnssLocationProvider$GpsRequest@45e4417)
05-15 11:25:12.435 2107-5146/com.google.android.gms.persistent I/Places: ?: Couldn't find platform key file.
05-15 11:25:12.440 1626-1643/system_process I/GnssLocationProvider: WakeLock released by handleMessage(3, 0, com.android.server.location.GnssLocationProvider$GpsRequest@45e4417)
05-15 11:25:13.030 4609-4807/mbmcorp.trouvetonterrain W/DynamiteModule: Local module descriptor class for com.google.android.gms.googlecertificates not found.
05-15 11:25:13.040 4609-4807/mbmcorp.trouvetonterrain I/DynamiteModule: Considering local module com.google.android.gms.googlecertificates:0 and remote module com.google.android.gms.googlecertificates:2
05-15 11:25:13.040 4609-4807/mbmcorp.trouvetonterrain I/DynamiteModule: Selected remote version of com.google.android.gms.googlecertificates, version >= 2
05-15 11:25:13.126 1626-1626/system_process W/WindowManager: Attempted to remove non-existing token: android.os.Binder@7487561
05-15 11:25:22.445 2107-3173/com.google.android.gms.persistent E/Places: Timed out waiting for a location for getCurrentPlace
05-15 11:25:22.446 2107-5133/com.google.android.gms.persistent W/Places: ?: onFailure: java.lang.IllegalStateException: No location available
05-15 11:25:31.426 2385-4503/com.google.android.googlequicksearchbox:search W/GmsLocationProvider: Error removing location updates: 16
05-15 11:30:04.390 1626-2345/system_process D/ConnectivityService: reportNetworkConnectivity(100, false) by 10012
05-15 11:30:05.012 1626-1711/system_process D/NetworkNotificationManager: clearNotification id=100
05-15 11:30:05.012 1626-1711/system_process D/ConnectivityService: NetworkAgentInfo [MOBILE (LTE) - 100] validation passed
Merci à ceux qui peuvent m'éclairer, cette fonction me bloque pour pouvoir avancer sur mon application car j'ai besoin de connaitre les points d'intérêt autour de moi.
Ou alors peut être connaissez vous une autre méthode pour le faire.

De ce que je comprend. La fonction permettant de récuperer ma position avec getCurrentPlace n'a pas l'air de fonctionner alors que je récupère bien mes coordonnées avec la méthode
LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient).

Je précise que j'utilise le code du site officiel d'android, je n'ai rien inventé dans la fonction

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
private void recuperationLieux(){
 
        try {
            if (mLocationPermissionGranted) {
                PendingResult<PlaceLikelihoodBuffer> result = Places.PlaceDetectionApi
                        .getCurrentPlace(mGoogleApiClient, null);
                result.setResultCallback(new ResultCallback<PlaceLikelihoodBuffer>() {
                    @Override
                    public void onResult(@NonNull PlaceLikelihoodBuffer likelyPlaces) {
                        int i = 0;
 
                        String[] mLikelyPlaceNames = new String[5];
                        String[] mLikelyPlaceAddresses = new String[5];
                        String[] mLikelyPlaceAttributions = new String[5];
                        String[] mLikelyPlaceLatLng = new String[5];
 
                        for (PlaceLikelihood placeLikelihood : likelyPlaces) {
                            mLikelyPlaceNames[i] = (String) placeLikelihood.getPlace().getName();
                            mLikelyPlaceAddresses[i] = (String) placeLikelihood.getPlace().getAddress();
                            mLikelyPlaceAttributions[i] = (String) placeLikelihood.getPlace().getAttributions();
                            mLikelyPlaceLatLng[i] = String.valueOf(placeLikelihood.getPlace().getLatLng());
 
                            i++;
                            if (i > 4) break;
                        }
                        likelyPlaces.release();
                    }
 
                });
            }
        }catch(Exception e){
            Toast.makeText(this, e.getMessage(), Toast.LENGTH_LONG).show();
        }
 
    }
Merci beaucoup