Ich muss eine Genehmigung manuell für API-Ebene 23 anfordern und wo das Dialogfenster erscheint und die Anwendung in den Hintergrund tritt.Anfrage Erlaubnis Fenster Kraftanwendung zu stoppen
Hier ist mein Code:
@Override
public void onDialogDone(int dialog, boolean result) {
DialogFragment newFragment;
switch (dialog) {
case EULA_DIALOG:
if (result) {
boolean numberExists = _appRegistration.checkPhoneNumber();
if (!numberExists) {
ActivityCompat.requestPermissions(MainActivity.this,
new String[]{Manifest.permission.READ_PHONE_STATE},
MY_PERMISSIONS_PHONE_STATE_READ);
return;
} else {
//do some work
}
} else {
Intent intent = new Intent(...);
startActivity(intent);
finish();
}
break;....
}
}
Auch im MainActivity ich die folgende Methode außer Kraft gesetzt haben:
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
switch (requestCode) {
case MY_PERMISSIONS_PHONE_STATE_READ: {
if (grantResults.length > 0
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// do some work
} else {
// do some work
}
return;
}
}
Aber wenn ich "erlauben" klicken oder "Verweigern", ist diese Methode nicht aufgerufen, da sich die Anwendung im Hintergrundmodus befindet ... Ich habe die Methoden und onStop
protokolliert und beide werden aufgerufen, nachdem das Berechtigungsfenster angezeigt wird.
Macht es Kraft, Ihre App auf verweigern zu stoppen? –
spielt keine Rolle, wenn das Dialogfeld angezeigt wird, wird die Anwendung im Hintergrund ausgeführt. es wartet nicht auf die Antwort – Nininea
Ich denke, das ist problamatic Intent intent = neue Absicht (...); startActivity (Absicht); Ende(); , nicht sicher über Ihre if (Ergebnis) aber sonst Teil ist problamatic –