Ich integrierte Android Runtime Permission für READ PHONE STATE
für Marshmallow-Geräte. Diese Implementierung funktioniert einwandfrei und das Popup wird in meiner Anwendung mit der Option allow/deny angezeigt.Laufzeit Permission popup click issue in Marshmallow Aktualisierte Geräte
Ich kann auf die Erlauben/Verweigern-Taste für normale Marshmallow-Geräte klicken. Aber im Fall von aktualisierten Android-Geräten (Von Lollipop zu Marshmallow) funktioniert der Klick auf die Schaltfläche "Erlauben" nicht. Dieses Problem wurde in Nexus 5 und Nexus 7 getestet und reproduziert. Benötigen Sie etwas, das Sie für ein aktuelles Betriebssystem benötigen? Oder ist es ein Marshmallow-Problem?
Bitte überprüfen Sie den vollständigen Code:
private static final int MY_PERMISSIONS_REQUEST_READ_PHONE_STATE = 101;
if (Build.VERSION.SDK_INT >= 23) {
if(mActivity.checkSelfPermission(Manifest.permission.READ_PHONE_STATE) !=PackageManager.PERMISSION_GRANTED) {
if (this.shouldShowRequestPermissionRationale(
Manifest.permission.READ_PHONE_STATE)) {
showExplanationDialog(mActivity, getString(R.string.dialog_message_phone_state));
} else {
this.requestPermissions(new String[]{Manifest.permission.READ_PHONE_STATE},
MY_PERMISSIONS_REQUEST_READ_PHONE_STATE);
}
} else {
handleLoginAPI();
}
} else {
handleLoginAPI();
}
private void handleLoginAPI() {
if (super.isNetworkConnectionAvailable(mActivity)) {
// Api Call from here..
}else{
// No Nw Connection.
}
}
@Override
public void onRequestPermissionsResult(int requestCode,
String permissions[], int[] grantResults) {
switch (requestCode) {
case MY_PERMISSIONS_REQUEST_READ_PHONE_STATE: {
// If request is cancelled, the result arrays are empty.
if (grantResults.length > 0
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
handleLoginAPI();
} else if (grantResults.length > 0
&& grantResults[0] == PackageManager.PERMISSION_DENIED) {
if (this.shouldShowRequestPermissionRationale(
Manifest.permission.READ_PHONE_STATE)) {
showExplanationDialog(mActivity, getString(R.string.dialog_message_phone_state));
}
}
return;
}
}
}
können Sie den Code, wo Sie um Erlaubnis bitten und die activityResult-Methode –
Ja, ich werde die Frage bearbeiten. Aber das Problem ist nur in Updates OS ?. – Nithinjith
Nein, nicht unbedingt, ich selbst benutze aktualisierte OS-Telefon, es funktioniert gut für mich. Möglicherweise sind einige Implementierungsprobleme. –