Regardes si tu as renseignés les permissions dans ton manifest pour android.permission.ACCESS_COARSE_LOCATION et android.permission.ACCESS_FINE_LOCATION et que tu as aussi demandé les droits explicitement dans ton code.
Version imprimable
Regardes si tu as renseignés les permissions dans ton manifest pour android.permission.ACCESS_COARSE_LOCATION et android.permission.ACCESS_FINE_LOCATION et que tu as aussi demandé les droits explicitement dans ton code.
Pour les droits dans le Manifest c'est bon.
Cependant pour les droits je vais aller voir ton lien.
J'ai ça aussi comme erreur :
Elle paraît assez claire, mas pour moi Google Maps Android API v2 est déjà activé.Code:
1
2
3
4
5
6
7 E/Google*Maps*Android*API: Authorization failure. Please see https://developers.google.com/maps/documentation/android-api/start for how to correctly set up the map. E/Google*Maps*Android*API: In the Google Developer Console (https://console.developers.google.com) Ensure that the "Google Maps Android API v2" is enabled. Ensure that the following Android Key exists: API Key: AIzaSyAQfPdJIoAbdLnH_IObskkay5VKQATM8Ac Android Application (<cert_fingerprint>;<package_name>): 45:16:9A:8E:7C:97:89:43:B0:D9:7B:29:46:39:EB:36:64:73:C3:F9;com.example.etc...
Il faut vraiment demander les permission explicitement dans ton code sinon ça ne marchera pas si tu exécutes ton application à partir d'Android 5.0 et plus.
Ensuite assure toi que la configuration dans ton google console est correcte. Si tu respectes tout ceci il n'y a pas de raison que ça ne fonctionne pas.
Oui je test dans l'activity principal, par contre je n'avais pas mis le message d'erreur quand je test depuis l'emulation
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22E/DeferredLifecycleHelper: Failed to start resolution intent android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=market://details?id=com.google.android.gms&pcampaignid=gcore_10084000--com.example.etc..1 flg=0x80000 pkg=com.android.vending } at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1809) at android.app.Instrumentation.execStartActivity(Instrumentation.java:1523) at android.app.Activity.startActivityForResult(Activity.java:4225) at android.support.v4.app.BaseFragmentActivityJB.startActivityForResult(BaseFragmentActivityJB.java:50) at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:79) at android.app.Activity.startActivityForResult(Activity.java:4183) at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:859) at android.app.Activity.startActivity(Activity.java:4522) at android.app.Activity.startActivity(Activity.java:4490) at com.google.android.gms.dynamic.zza$5.onClick(Unknown Source) at android.view.View.performClick(View.java:5637) at android.view.View$PerformClick.run(View.java:22429) at android.os.Handler.handleCallback(Handler.java:751) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6119) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
Teste sur un vrai appareil,Google Android Map API v2 ne fonctionne pas avec l'émulateur Android.à moins de l'importer dans l'émulateur.
Je me pose la question pour cette parti là:
"MY_PERMISSIONS_REQUEST_READ_CONTACTS" Si au lieu de demander ce type de permission "READ_CONTACTS" je demande "ACCESS_COARSE_LOCATION" , qu'est-ce-que je dois mettre ?Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.READ_CONTACTS)) { //Cela signifie que la permission à déjà était //demandé et l'utilisateur l'a refusé //Vous pouvez aussi expliquer à l'utilisateur pourquoi //cette permission est nécessaire et la redemander } else { //Sinon demander la permission ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_CONTACTS}, MY_PERMISSIONS_REQUEST_READ_CONTACTS); }
Je bloque sur un rien du tout..
Voilà ma parti de code à moi:
et ma fonction "onRequestPermissionsResult"Code:
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 if(!runtime_permissions()); enabled_buttons(); // Assume thisActivity is the current activity int permissionCheck = ContextCompat.checkSelfPermission(LocalisationGPSActivity.this, Manifest.permission.ACCESS_COARSE_LOCATION); // Here, thisActivity is the current activity if (ContextCompat.checkSelfPermission(LocalisationGPSActivity.this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { // Should we show an explanation? if (ActivityCompat.shouldShowRequestPermissionRationale(LocalisationGPSActivity.this, Manifest.permission.ACCESS_COARSE_LOCATION)) { // Show an explanation to the user *asynchronously* -- don't block // this thread waiting for the user's response! After the user // sees the explanation, try again to request the permission. } else { // No explanation needed, we can request the permission. ActivityCompat.requestPermissions(LocalisationGPSActivity.this, new String[]{Manifest.permission.ACCESS_COARSE_LOCATION}, PERMISSION_LOCATION_REQUEST_CODE); // MY_PERMISSIONS_REQUEST_READ_CONTACTS is an // app-defined int constant. The callback method gets the // result of the request. } }
Code:
1
2
3
4
5
6
7
8
9
10
11
12@Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); if(requestCode == 100){ if( grantResults[0] == PackageManager.PERMISSION_GRANTED && grantResults[1] == PackageManager.PERMISSION_GRANTED){ enabled_buttons(); }else { runtime_permissions(); } } }