Android Marshmallow-つまり June2016 update)の最新の更新プログラムをインストールしたデバイスでは、許可を求めるとALLOWボタンが機能しません。
次の2つのデバイスでテストしました。
Nexus 6p(Andoidバージョン-6.0.1、ビルド番号-MTC19V)
Nexus 7(Androidバージョン6.0.1、ビルド番号-MOB30M)
両方とも最新の更新があり、許可を要求するとダイアログが表示されますが、許可ボタンを押すことができません。
許可を要求するために使用するコードは次のとおりです。
public void showPermissionsDialog() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
int hasWriteExternalStoragePermission = activity.checkSelfPermission(Android.Manifest.permission.WRITE_EXTERNAL_STORAGE);
int hasWriteGetAccountsPermission = activity.checkSelfPermission(Android.Manifest.permission.GET_ACCOUNTS);
if (hasWriteExternalStoragePermission != PackageManager.PERMISSION_GRANTED || hasWriteGetAccountsPermission != PackageManager.PERMISSION_GRANTED) {
activity.requestPermissions(new String[]{Android.Manifest.permission.WRITE_EXTERNAL_STORAGE, Android.Manifest.permission.GET_ACCOUNTS}, MainActivity.REQUEST_CODE_ASK_PERMISSIONS);
} else {
isAllPermissionsGranted = true;
}
} else {
isAllPermissionsGranted = true;
}
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
if (requestCode == REQUEST_CODE_ASK_PERMISSIONS) {
if (grantResults.length > 0) {
boolean isAllPermissionsGranted = true;
for (int i = 0; i < grantResults.length; i++) {
if (grantResults[i] != PackageManager.PERMISSION_GRANTED) {
isAllPermissionsGranted = false;
}
}
if (isAllPermissionsGranted) {
this.isAllPermissionsGranted = true;
} else {
Android.widget.Toast.makeText(this, "Please, grand permissions", Android.widget.Toast.LENGTH_LONG).show();
showPermissionsDialog();
}
}
}
}
これを修正する方法についての提案はありますか?前もって感謝します!
[〜#〜] edit [〜#〜]
ここ はGoogleへのバグレポートです。 Googleからの修正を待っています。
EDIT 1
この問題は修正されました!
EDIT:最後のAndroidで欠陥としてマークされており、OSの将来のリリースで修正される予定です。 バグレポート
編集2:ファイルマネージャーは、アプリのこの機能を修正することを私にメールします。私はもうファイルマネージャを試していませんが、アプリを更新してもこの問題は発生しません。しかし、基本的にこの動作は、Android修正するまで、間違った方法でオーバーレイを行うアプリからのものです。
私はついにそれを手に入れました(少なくとも私の場合)...そのf **** ファイルマネージャー アプリのサービス。サービスが停止している場合、権限は再び機能します。
https://play.google.com/store/apps/details?id=com.rhmsoft.fm
「MOB30M」への更新前にこのアプリを使用し、問題なく動作するランタイム許可(これをプログラムするのが私の毎日の仕事です)と、ファイルマネージャーを使用してリリースAPKを携帯電話に入れて実行し、インストールしましたAPK。今日インストールしたアプリはそうではありません。
私がひどい資金を提供しているのは、1つのアプリがすべての許可システムをクラッシュさせる可能性があるということです。
それは過度に問題です
アプリはダイアログを改ざんするために使用される可能性があるため、許可システムがクラッシュしていないことを理解していますが、Android(Google)が実行中のアプリを持っていることを伝えるべきではありませんアプリの権限を付与する場合は、XXXXアプリをアンインストールする必要がありますか?ユーザーエクスペリエンスのためです。
通常のユーザーは、自分の携帯電話が故障していると考え、おそらく携帯電話をグーグルまたはキャリアxDに送り返すでしょう
さあ、正直に言って、カントAndroidこれを改善しますか?この振る舞いを得るためにあなたの電話が根ざしている必要はありません(私の電話は根づいていません)。上、その後壊れているような
私の場合 Clean Master のiSwipeがこの問題の原因でした。設定でISWIPE機能を無効にします
そのAndroid Marshmallow 6.0.1の問題。Googleサポートによると、彼らはこの問題に取り組んでいます https://code.google.com/p/Android/issues/detail? id = 21312
私は同じ問題を報告しようとしていましたが、ここではすでに登録されています、私は2ヶ月以来これに直面しています、なぜかわかりませんが、「許可」ボタンは私のNEXUS 6P電話でも動作しませんこの問題はネクサスシリーズでのみ実行されているようです
@Google and Android team:これを修正してください、この問題に直面している回数について本当に迷惑です、つまり各アプリについては、手動で回避策の設定を続ける必要があります許可を設定します。
その本当に愚かなバグ:/