2015-12-12 4 views

Antwort

0
@Override 
protected void onStart() { 
    super.onStart(); 
     ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); 
     ComponentName cn = am.getRunningTasks(1).get(0).topActivity; 
     if ("com.android.packageinstaller.permission.ui.GrantPermissionsActivity".equals(cn.getClassName())){ 
      //permission dialog is displayed 
     } 
}` 

`

+0

Ich bin etwas spät dran, aber ich habe es gerade ausprobiert und es funktioniert! Ich habe dies mit einer booleschen Flagge gemacht, aber Ihre Lösung kann auch nützlich sein. Thanks – ThanosFisherman

+0

Beachten Sie, dass getRunningTasks() jetzt veraltet ist, so dass diese Lösung möglicherweise in Zukunft nicht realisierbar ist. –

1

Der Berechtigungsdialog ist eine Aktivität, die über den Aktivitätsstapel gesetzt wird. Also, wenn Sie für requestPermission() Methode Activity aufrufen, fragt die Implementierung PackageManager Absicht zu bauen, die diesen Aktivitätsdialog starten wird. Diese Absicht hat ACTION_REQUEST_PERMISSIONSaction.

Wahrscheinlich müssen Sie auf Aktivitätsstapeländerungen warten und prüfen, ob der Aktivitätsabsicht ACTION_REQUEST_PERMISSIONS Aktion hat. Ich bin mir nicht sicher, ob das Erlangen laufender Aufgaben dir diese Aktivität anzeigt, weil ich das selbst nicht versucht habe, nur um dich in Gang zu bringen.