19

Wie Sie vielleicht wissen, da Android 5 ins Leben gerufen wurde, um die letzten Aufgaben Zugriff (Nutzungsstatistiken) des Geräts muss der Benutzer diese Funktion manuell aktivieren (Einstellungen-> Sicherheit-> Nutzung Zugangs).Android Usage Zugang für Android 5 Samsung Geräte

Meine App prüft, ob das Gerät verwendet Android 5, und wenn ja, dann bietet es dem Anwender die Möglichkeit, den Bildschirm Einstellungen zu ermöglichen Nutzung Zugang zu öffnen:

Intent intent = new Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS); 
        startActivityForResult(intent, 12345); 

Das Problem kommt, wenn ich zu tun versuchen, dies in einem Samsung-Gerät mit Android 5 ... ich habe diesen Fehler, wenn die Leitung oben ausgeführt wird angezeigt:

android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.settings.USAGE_ACCESS_SETTINGS } 
      at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1801) 
      at android.app.Instrumentation.execStartActivity(Instrumentation.java:1499) 
      at android.app.Activity.startActivityForResult(Activity.java:3913) 

Es scheint, dass die Settings.ACTION_USAGE_ACCESS_SETTINGS Aktion wurde nicht umgesetzt, was seltsam ist, denn wenn du gehst zu Einstellungen die Option zum Aktivieren von th e App diese Nutzungsstatistiken zuzugreifen, ist es ...

Jede Idee, wie man dieses Problem für diesen speziellen Fall zu beheben?

+0

denken behandelt werden kann ich Ihnen intent.resolveActivity (context.getPackageManager())! = null – Pauland

+0

Danke für die Antwort benutzen sollte aber die Ausnahme ist nicht das Problem, Was ich gerne wissen würde ist, wie man die "Usage Access" Aktivität der Settings.apk eines Android 5 Samsung Gerätes öffnet direkt von meiner App ... wie ich es bei Geräten anderer Marken tun kann ... – Hannibalem

+0

Ich habe das gleiche Problem - hast du ein Samsung Gerät zur Verfügung? Wenn ja, können Sie das LogCat Protokoll mit dem Start Intent Post (es sieht wie folgt aus: 'I/Activitymanager (18815): START u0 {act = android.intent.action.MAIN cmp = com.android.settings/.SubSettings (hat Extras)} von pid 12226 D/audio_hw_primary (18477): select_devices: out_snd_device (2: Lautsprecher) in_snd_device (0:) D/SubSettings (12226): Starten von Fragment com.android.settings.OwnerInfoSettings 'So ein kann eine Intent erstellen, die genaue Seite – Force

Antwort

0

Sorry für die Verspätung, ich hoffe, Sie haben eine gute Lösung gefunden, aber wenn nicht, oder für andere Menschen, die dieses Problem haben,

diese Fehler in einigen Samsung-Modellen zu existieren scheinen, den Absturz Ihrer zu vermeiden app, überprüfen Sie können vielleicht, wenn Ihre Absicht

PackageManager packageManager = getActivity().getPackageManager(); 
if (intent.resolveActivity(packageManager) != null) { 
    startActivity(intent); 
} else { 
    Toast.makeText(getBaseContext(), "Please open settings, your model can't be forced to open it", Toast.LENGTH_LONG).show(); 
}