Ich versuche, Gerät (Nexus 5x) Speicherort zu erhalten, indem Sie ein Tutorial folgen. Aber es funktioniert nicht und ich fand heraus, dass die LinieWarum gibt locationManager.getBestProvider() null zurück? (Nexus 5x)
locationManager.getBestProvider(new Criteria(), false);
immer Null zurückgibt.
Hier ist mein manifesten Inhalt:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="lt.wilkas.locationdemo">
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.INTERNET"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Hier mein onCreate Inhalt ist:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//initialize location manager
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
//get best provider
provider = locationManager.getBestProvider(new Criteria(), false);
if (provider == null) {
Log.i("i", "provider ir null");
} else {
Log.i("i", provider);
}
}
Was bin ich nicht richtig zu tun?
Sie benötigen Laufzeitberechtigungen für Android 6.0 und höher zu implementieren. –
Ja, GPS ist eingeschaltet. Danke für die Führung von Prerak, ich werde nachsehen, wie das geht und werde die Frage aktualisieren oder die Antwort selbst eingeben. – wilkas
Wenn Sie in Ihrer build.gradle-Datei targetSdkVersion 23 verwenden, sollten Sie Laufzeitberechtigungen verwenden. Wenn targetSdkVersion kleiner als 23 ist, sollten alle funktionieren. – Beyka