あなたが答えとコードスニペット(非常に便利)6.0
private static final int MY_PERMISSIONS_REQUEST_STORAGE = 1;
private String[] storage_permissions =
{
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE
};
if ((int) Build.VERSION.SDK_INT >= 23) {
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.READ_EXTERNAL_STORAGE) && ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.READ_EXTERNAL_STORAGE) && ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(this);
builder.setMessage("To get storage access you have to allow us access to your sd card content.");
builder.setTitle("Storage");
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
ActivityCompat.requestPermissions(OmniSalesHubDrawerActivity.this, storage_permissions, 0);
onContactsClick();
}
});
builder.show();
} else {
ActivityCompat.requestPermissions(this, storage_permissions, 0);
onContactsClick();
}
} else {
ActivityCompat.requestPermissions(DrawerActivity.this,
storage_permissions,
MY_PERMISSIONS_REQUEST_STORAGE);
onContactsClick();
}
}
}
感謝の実行時間のアクセス許可を与える必要があり、エミュレートされます。あなたが正しいとすれば、Android 6.0は、これらが動作するためのユーザ権限ロジックが必要と考えています。今のところ、1つのAPIレベルを下に戻すことにしました(22)ので、先に進むことができます。 APIレベル22は、Android 6デバイスで完全に機能するようです。それでは、最新のAPIレベルにアップグレードする際のポイントは何ですか(新しいAPIを使ってアプリケーションに新しいロジックを導入しても機能しない場合)下位互換性があるため、そのままアプリを公開することは安全ですか?ではない ? – Kris
その2つの側面: **最初:** はい下位互換性があります。アプリケーションでバージョン23をターゲットに設定するまで完全サポートは必要ありません。 Marshmallow ** 2番目のバージョン:** 古いモデルを使用することができますから、それを元に戻すことができるので、アプリケーションはインストール時にすべてのアクセス権を要求します。マシュマロを標的にしないことで新しいモデルを避けることができるというわけではありません。沼地のあるユーザー。デバイスにアプリケーション設定で危険な権限を取り消す機能が追加されました – Bhumit
ありがとう@Bhumit – Kris