Wie Fragen Sie den Benutzer, die GPS-Funktion beim Start der Anwendung?
private void turnGPSOn(){
String provider = Settings.Secure.getString(getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED);
if(!provider.contains("gps")){ //if gps is disabled
final Intent poke = new Intent();
poke.setClassName("com.android.settings", "com.android.settings.widget.SettingsAppWidgetProvider");
poke.addCategory(Intent.CATEGORY_ALTERNATIVE);
poke.setData(Uri.parse("3"));
sendBroadcast(poke);
}
}
finden Sie in der Logcat
04/20 17:35:26: Launching app
$ adb push F:\AndroidProject\Picker\app\build\outputs\apk\app-debug.apk /data/local/tmp/picker.novasyslabs.com.picker
$ adb shell pm install -r "/data/local/tmp/picker.novasyslabs.com.picker"
pkg: /data/local/tmp/picker.novasyslabs.com.picker
Success
$ adb shell am start -n "picker.novasyslabs.com.picker/picker.novasyslabs.com.picker.SlashScreen" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
Connected to process 22502 on device sony-d2302-ZH80065A89
W/ResourceType: Found multiple library tables, ignoring...
W/ResourceType: Found multiple library tables, ignoring...
W/ResourceType: Found multiple library tables, ignoring...
W/art: Before Android 4.1, method android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in android.graphics.drawable.Drawable
I/art: Background partial concurrent mark sweep GC freed 151(19KB) AllocSpace objects, 0(0B) LOS objects, 39% free, 13MB/22MB, paused 5.156ms total 20.919ms
D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main
Process: picker.novasyslabs.com.picker, PID: 22502
java.lang.RuntimeException: Unable to start activity ComponentInfo{picker.novasyslabs.com.picker/picker.novasyslabs.com.picker.SlashScreen}: java.lang.ClassCastException: picker.novasyslabs.com.picker.SlashScreen cannot be cast to com.google.android.gms.common.api.GoogleApiClient$ConnectionCallbacks
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2379)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2442)
at android.app.ActivityThread.access$800(ActivityThread.java:156)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1351)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:211)
at android.app.ActivityThread.main(ActivityThread.java:5371)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:945)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:740)
Caused by: java.lang.ClassCastException: picker.novasyslabs.com.picker.SlashScreen cannot be cast to com.google.android.gms.common.api.GoogleApiClient$ConnectionCallbacks
at picker.novasyslabs.com.picker.SlashScreen.onCreate(SlashScreen.java:65)
at android.app.Activity.performCreate(Activity.java:5990)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2332)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2442)
at android.app.ActivityThread.access$800(ActivityThread.java:156)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1351)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:211)
at android.app.ActivityThread.main(ActivityThread.java:5371)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:945)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:740)
Application terminated.
Ich habe versucht, viele andere option wie den Paket-manager, Standort-manager, etc, aber nicht in der Lage, das zu tun, was ich will.
Ich möchte, dass beim Start der Anwendung wird der Benutzer aufgefordert, aktivieren Sie die GPS.
Ich don ' T möchten Benutzer in den Einstellungen.
Und wollte, dass ich für den API-Ebene >=19.
Bitte helft mir mein problem zu lösen.........
Dank
Wenn Sie bereit sind, verwenden Sie die Google Play-Dienste,
verwenden Sie diese <stackoverflow.com/questions/29801368/...>
Vielen Dank, das funktioniert für mich. Thank u so viel. 🙂
Möglich, Duplikat der Wie um zu zeigen, ermöglichen die Standort-dialog wie bei Google maps?
SettingsApi
hat einige Optionen, für die der Benutzer aufgefordert wird, zu ermöglichen Standorten. sample-app demonstriert die Technik. Ansonsten, was Sie wollen, ist nicht möglich.verwenden Sie diese <stackoverflow.com/questions/29801368/...>
Vielen Dank, das funktioniert für mich. Thank u so viel. 🙂
Möglich, Duplikat der Wie um zu zeigen, ermöglichen die Standort-dialog wie bei Google maps?
InformationsquelleAutor Mishu | 2017-04-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
immer Fehler finden Sie in der logcat habe ich oben aktualisiert. Dank
Vielen Dank, das funktioniert für mich. Thank u so viel. 🙂
zumindest zeigen Sie etwas Respekt, indem die Verbindung der original-poster hier stackoverflow.com/a/29872703/4758255. Nicht nur kopieren und einfügen.
InformationsquelleAutor Dheerubhai Bansal
verwenden SettingsApi, wenn Sie nicht wollen, zu zwingen, Benutzer, gehen Sie auf der Seite Einstellungen aktivieren Sie gps.
hier der link, wie SettingsApi
SettingsApi
InformationsquelleAutor Hitesh Gehlot
Wenn du etwas möchtest, wie unten dargestellt, entlang Folgen.
Fügen Sie die folgenden Abhängigkeiten in Ihrem app
build.gradle
Erstellen Sie die Art von Ort Anforderung Sie wollen, wir wollen eine hohe Genauigkeit für GPS -
Nun müssen wir überprüfen den aktuellen Zustand des GPS. Für diese müssen wir nutzen
LocationServices.getSettingsClient(getActivity()).checkLocationSettings(builder.build())
Diese zurückTask
muss asynchron verarbeitet. In RESOLUTION_REQUIRED Fall, bitten wir die Benutzer-Berechtigungen zu erteilen, das ist, wo wir zeigen, dass die Benutzer die Aufforderung zum aktivieren von GPS.Nun, dass wir gebeten haben, Benutzer zu aktivieren GPS, die wir brauchen, um zu überprüfen, ob Benutzer erlaubt es oder ignoriert es. Für diese überschreiben onActivityResult. Bitte beachten Sie, dass, wenn Sie die Umsetzung der oben genannten code in ein fragment, das Ergebnis wird in der umgebenden Aktivität. So überschreiben onActivityResult in der Activity-Klasse.
Von Der Android-Dokumentation
InformationsquelleAutor Ananth Raj Singh
Nein, die endgültige Entscheidung verlassen sich auf Benutzer entweder GPS an oder aus
Sie Eingabeaufforderung in diesem dialog bis auf GPS
InformationsquelleAutor Arsalan Khan