外部ストレージの読み取りと書き込みの許可を必要とするアンドロイドアプリを開発しています。私の要件は、ギャラリーから画像を選択し、私のアプリで使用することです。マシュマロの装置を除いてすべてがうまくいきます。私はマシュマロの許可を与えたい。誰もこれで私を助けることができますか?marshmallowのストレージとギャラリーの使用に関する読み取りと書き込みの許可
6
A
答えて
15
それは...
Runtime permissions - Android Mと its reference projectを通じて読むpublic class MainActivity extends AppCompatActivity implements ActivityCompat.OnRequestPermissionsResultCallback{
private static final int REQUEST_WRITE_PERMISSION = 786;
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
if (requestCode == REQUEST_WRITE_PERMISSION && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
openFilePicker();
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
requestPermission();
}
private void requestPermission() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
requestPermissions(new String[]{android.Manifest.permission.WRITE_EXTERNAL_STORAGE}, REQUEST_WRITE_PERMISSION);
} else {
openFilePicker();
}
}
}
2
を、次のような何かを達成することができます。
アクセス許可のフローが変更され、実行時に、必要に応じて、実行時に要求されるアクセス許可が必要です。同じ権限で、許可グループにもつながるNormal and Dangerousに分類されています。
0
さらに、複数のアクセス権を要求する場合。あなたはこれを行うことができます。
private ArrayList<String> permisos;
private void someMethod()
{
..
verificarPermisos(Manifest.permission.READ_EXTERNAL_STORAGE);
verificarPermisos(Manifest.permission.ACCESS_FINE_LOCATION);
verificarPermisos(Manifest.permission.ACCESS_COARSE_LOCATION);
if (permisos.size()!=0)
{
solicitarPermisos(permisos.toArray(new String[permisos.size()]));
}
..
}
@TargetApi(23)
void verificarPermisos(String permiso){
if (ContextCompat.checkSelfPermission(this,permiso)
!= PackageManager.PERMISSION_GRANTED) {
permisos.add(permiso);
// Should we show an explanation?
if (shouldShowRequestPermissionRationale(permiso)) {
}
}
}
@TargetApi(23)
void solicitarPermisos(String[] permiso){
requestPermissions(permiso, 1);
}
まず許可がすでに "verificarPermisos()" メソッドを付与されているかどうか、私は確認してください。もしそれらが与えられなければ、私はそれらを "permisos" arraylistに加えます。最後に、許可されていないパーミッションが返され、String []配列形式で渡されます。
MashMellow(API 23)以降でしかアクセス許可を要求できないことに注意してください。アプリがMashMellowの前にアンドロイド版をターゲットにしている場合は、 "@TargetApi()"注釈を使用でき、ターゲットがAPI 23以上の場合にのみアクセス許可メソッドが呼び出されます。
挨拶を手助けしてください。
関連する問題
- 1. フォルダのAndroidの読み取り/書き込みの許可
- 2. Androidの内部ストレージへの文字列の書き込みと読み取り
- 3. 読み取り/書き込みのQObject
- 4. プリファレンスの読み取り/書き込み
- 5. mongodbの読み取りと書き込みの接続のタイムアウト
- 6. C#CSLAビジネスオブジェクトのジレンマ:読み取り専用vs読み込み/書き込み
- 7. DBからの読み取りとファイルへの書き込み
- 8. リソースファイルからのオブジェクトの書き込みと読み取りIOS
- 9. C#ファイルを読み取り専用で読み取り/書き込みする
- 10. 読み取りと書き込みJSONファイル使用してjavascriptの
- 11. Wixネットワークサービスの読み取りと書き込み
- 12. MPRIS + Python(dbus):読み取りと書き込みのプロパティ
- 13. SDカードへの書き込みと読み取り
- 14. plistファイルからの書き込みと読み取り
- 15. ブーストasio非同期の読み取りと書き込み
- 16. Cassandra - cfstatsと読み取り/書き込みレイテンシの意味
- 17. 5ビットのEEPROM読み取りと書き込み
- 18. C#:SerialPort:読み取りと書き込みのバッファサイズ
- 19. 同じファイルへの書き込みと読み取り
- 20. ASP.NET MVC。 Cookieの読み取りと書き込み
- 21. ファイルへの読み書きの高速読み込みと書き込み
- 22. ファイル読み込みと書き込み
- 23. 読み取り/書き込み同期
- 24. MMIO読み取り/書き込みレイテンシ
- 25. 「読み取り専用ページへの書き込み」エラーとは何ですか?
- 26. アセンブリ内の読み込みと書き込みと整数ATT
- 27. 読み取りと書き込みベースのサーバーセットにWebアプリケーションを構築する
- 28. TPipeServerとTPipeClientコンポーネントの読み取りと書き込みコードとセキュリティチェック
- 29. PIC16F84 - eeprom読み取りと書き込み
- 30. mysql high読み取りと書き込み
osレベルによって権限は変更されません。以下と同じです。 –
私はすでにmanifeast ..しかし、その許可を与えているアプリマシュマロのユーザーがギャラリーから画像を選択するとクラッシュします。許可の意味は – tiger
です。それはあなたが実行時に許可についてmarshmallowのユーザに尋ねなければならないことです。 –