マシュマロデバイスのAndroidランタイムパーミッションがREAD PHONE STATE
に統合されました。この実装はうまくいき、アプリケーションでallow/denyオプションを使ってポップアップが表示されています。Marshmallowでの実行時の権限のポップアップクリックの問題更新されたデバイス
通常のマシュマロデバイスでは、許可/拒否ボタンをクリックできます。しかし、更新されたアンドロイドデバイス(LollipopからMarshmallowまで)の場合、許可ボタンのクリックは初期の時間では機能しません。この問題は、Nexus 5とNexus 7でテストされ、再現されています。更新されたOSに追加で追加する必要がありますか?それともマシュマロ問題ですか?
完全なコードを確認してください:
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;
}
}
}
あなたが許可を求めているコードとactivityResultメソッド –
を投稿できます。質問を編集します。しかし、この問題はアップデートOSだけにあるのですか? – Nithinjith
必ずしもそうではありませんが、私自身は更新されたOS電話を使用しています。いくつかの実装上の問題があります。 –