20

Ich habe ein Problem mit Google Place Picker in Android Redmi Phones Version 5.1.1. Ich verwende den folgenden Code zum Starten des Google Place Picker.Google-Platzwähler startet nicht auf Android Mi-Handys

Ich habe folgende Berechtigungen und API-Schlüssel und Google Play Service-Version hinzugefügt.

Es funktioniert auf jedem Telefon außer Android Redmi Note2. Jeder Vorschlag wäre willkommen. Danke im Voraus.

+0

Bitte geben Sie die Version der Google Play-Dienste des Geräts an. Jede Ausnahme ausgelöst? Sind Google Play-Dienste auf dem Gerät vorhanden? Überprüfen Sie, ob die Play-Dienste verfügbar sind, da sie aufgrund der chinesischen Gesetzgebung ohne Play Services https://developers.google.com/android/reference/com/google/android/gms/common/GoogleApiAvailability#isGooglePlayServicesAvailable(android.content) ausgeliefert werden .Context) Sie müssen die Auflösung starten, wenn die Play-Dienste nicht vorhanden sind. –

+0

Welchen Fehler erhalten Sie? – AndroidHacker

+1

Keine Fehler. Nur die Aktivität beginnt und schließt sofort. Es erscheinen keine Fehler im Fehler Logcat @AndroidHacker – Kaushal28

Antwort

-1

Ab Android 6.0 (API-Stufe 23) gewähren Benutzer Berechtigungen für Anwendungen, während die App ausgeführt wird, nicht wenn sie die App installieren. Dieser Ansatz optimiert den App-Installationsprozess, da der Benutzer keine Berechtigungen erteilen muss, wenn er die App installiert oder aktualisiert. Es gibt dem Benutzer auch mehr Kontrolle über die Funktionalität der App. Beispielsweise könnte ein Benutzer einer Kamera-App den Zugriff auf die Kamera, nicht aber den Standort des Geräts gewähren. Der Benutzer kann die Berechtigungen jederzeit widerrufen, indem er zum Bildschirm Einstellungen der App geht.

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.myapp" > 
    ... 
    <uses-permission 

android: name = "android.permission.ACCESS_COARSE_LOCATION" /> android: name = "android.permission.ACCESS_FINE_LOCATION" />

android: name = "android.permission.ACCESS_COARSE_LOCATION"/> ...

diesen Code auf Ihre Aktivität in OnCreate hinzufügen

askForPermission(Manifest.permission.ACCESS_FINE_LOCATION,LOCATION); 

/// c all diese Methode

private void askForPermission(String permission, Integer requestCode) { 
     if (ContextCompat.checkSelfPermission(MainActivity.this, permission) != PackageManager.PERMISSION_GRANTED) { 

      // Should we show an explanation? 
      if (ActivityCompat.shouldShowRequestPermissionRationale(MainActivity.this, permission)) { 

       //This is called if user has denied the permission before 
       //In this case I am just asking the permission again 
       ActivityCompat.requestPermissions(MainActivity.this, new String[]{permission}, requestCode); 

      } else { 

       ActivityCompat.requestPermissions(MainActivity.this, new String[]{permission}, requestCode); 
      } 
     } else { 
      Toast.makeText(this, "" + permission + " is already granted.", Toast.LENGTH_SHORT).show(); 
     } 
    } 
+0

Ich habe diesen Code bereits in meiner App hinzugefügt. FYI: Standard-Android-Version von Red Mi Note 3 ist 5.1 Lollipop. Und mein Code funktioniert für 6.0 oder höher völlig in Ordnung in anderen Handys. Daher sind für dieses spezielle Telefon keine Laufzeitberechtigungen erforderlich. Bitte recherchieren Sie, bevor Sie die Fragen beantworten :) – Kaushal28

1

Basierend auf Ihrer Manifest-Datei, glaube ich, dass Sie den Schlüssel innerhalb von manifest Tag und nicht application hinzugefügt. Basierend auf Android docs, sollte der Schlüssel wie folgt ergänzt:

<application> 
... 
    <meta-data 
     android:name="com.google.android.geo.API_KEY" 
     android:value="YOUR_API_KEY"/> 
</application> 

Leider habe ich es nicht mit dem Gerät testen können Sie erwähnt haben, aber ich erinnere mich, dass ich ein ähnliches Problem mit einem Samsung Gerät (der Code arbeitete an jedes Gerät, außer dem einen). Überprüfen Sie auch die Protokolle erneut, vielleicht gibt es eine Nachricht und Sie haben es verpasst.

+0

Zunächst einmal haben Sie Recht bei der Schlüsselplatzierung. Aber diese Frage wird von mir nicht gestellt und kann nicht bearbeitet werden. Ich habe meinen Schlüssel richtig platziert, wie Sie erwähnt haben. Aber wenn der Schlüssel falsch platziert wurde, dann sollte es auf keinem Gerät funktionieren. Aber das funktioniert in allen anderen Geräten einwandfrei (ich habe auch auf dem Emulator getestet und es funktioniert.) Auch ich habe das gleiche Problem (Schlüssel falsch platziert) am Anfang konfrontiert, als ich anfing, meine App zu bauen. Wenn dies der Fall ist, sollte die Aktivität "Ort wählen" geöffnet werden, sollte aber keine Standortvorschläge oder automatische Vorschläge anzeigen. BTW Danke, dass Sie sich Zeit genommen haben. – Kaushal28

+0

Stellen Sie sicher, dass Ihre Redmi-Telefone GoogleServices installiert haben. – ohdroid

+0

@ohdroid wie man es genau prüft? – Kaushal28