2

Android 5.0バージョンでうまくいくことができるアンドロイドコードがあります。私AndroidManifest.xml実行時にアンドロイド6.0で必要なアクセス許可

<uses-permission android:name="android.permission.BLUETOOTH" /> 
<uses-permission android:name="android.permission.BROADCAST_STICKY" /> 
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> 
<uses-permission android:name="android.permission.RECORD_AUDIO" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/> 
<uses-permission android:name="android.permission.WAKE_LOCK" /> 

あるしかし、アンドロイド6.0(LG G5)を使用して、私の顧客は、アプリケーションがうまく動作しないと報告しました。私は問題が何であるかを確認するLG G5がありません。私の意見では、許可が5.0から6.0に変更された理由があると思います。あなたは私の許可を見て、私にいくつか改善するか、Android 6.0のためにそれを修正することができますか?または、Android 6.0の許可を自動的に追加する方法はありますか?ありがとうございすべて

+0

あなたは、APIバージョン23をターゲットにしましたか? – Ramit

+0

はい。まず、Android 5.0(21〜22)でテストしましたが問題はありません。今、ターゲットAPIのバージョンを変更したい23 – Jame

+0

WRITE_EXTERNAL_STORAGEは危険な許可です。危険な許可リストを確認してください。https://developer.android.com/guide/topics/security/permissions.html – Ramit

答えて

3
<uses-permission android:name="android.permission.RECORD_AUDIO" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

これらの権限は、詳細情報については、時間の権限の宿にあなたのApp

を実行されます。これは、あなたのアプリケーションで

+0

私の質問には良いリンク – Jame

2

Android 6.0では、これは含まれています。これらの権限については

ACCESS_COARSE_LOCATION 
ACCESS_FINE_LOCATION 
ADD_VOICEMAIL 
BODY_SENSORS 
CALL_PHONE 
CAMERA 
GET_ACCOUNTS 
PROCESS_OUTGOING_CALLS 
READ_CALENDAR 
READ_CALL_LOG 
READ_CELL_BROADCASTS 
READ_CONTACTS 
READ_EXTERNAL_STORAGE 
READ_PHONE_STATE 
READ_SMS 
RECEIVE_MMS 
RECEIVE_SMS 
RECEIVE_WAP_PUSH 
RECORD_AUDIO 
SEND_SMS 
USE_SIP 
WRITE_CALENDAR 
WRITE_CALL_LOG 
WRITE_CONTACTS 
WRITE_EXTERNAL_STORAGE 

だけでなく、あなたのtargetSdkVersion 23+アプリは、要素(複数可)を持っている必要がありますが、あなたはまたでこれらのアクセス許可を求める必要はありませんcheckSelfPermission()やrequestPermissions()などのメソッドを使用して、Android 6.0以降のデバイス上のユーザーからのランタイムを取得します。

How to ask permission link

+0

ありがとうございます。だから私が必要とするのは、プログラミングによって許可を要求することです。それは、ユーザーに尋ねて、自動的に私のアプリを追加します。そうですか?アプリが再び実行されたときに2回目を尋ねますか? – Jame

+0

こんにちはuser8430、この質問はリストに関するものですので、最初にあなたの答えを承認し、どのように許可を求めるための別の質問を開きます、私はあなたに役立ちます、最高の幸運の仲間:) –

+0

私はあなたの答えをupvote。私は誰がそれをdownvotes知らない – Jame

1
<uses-permission android:name="android.permission.RECORD_AUDIO" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

これらは危険権限ある、あなたはAPIレベル23+上の実行時にそれらを要求する必要があります。

危険な権限の完全なリストはhereで見つけることができます。

Requesting Permissions at Run Timeの開発者ガイドをご覧ください。

+0

したがって、 'AndroidManifest.xml'ファイルの上記の2つの権限を追加するのではなく。これらのアクセス許可をonCreate()関数に追加するには、requestPermission()関数を使用する必要があります。そうですか? – Jame

+1

APIレベルが低いデバイスの場合は、マニフェストにもそれらを持つ必要があります。 'onCreate()'でそれらを要求することは必須ではありません。それらを必要とする関数を呼び出す前に要求するだけです。 – earthw0rmjim

1

Android Marshmallowでは、権限の管理は以前のバージョンとまったく異なります。 API 23をターゲットに設定した場合は、ユーザーにアプリの許可または許可を要求する必要があります。

に見てみましょう: Android permissions

私はあなたがより少ないAPI 22かを設定した場合、アプリがアンドロイドのデバイスにインストールされているが、あなたはアクセス権に問題がないことを(テストしていない)と思います6.0+

1

あなたのアプリが危険なアクセス権(完全なリストはこちらhttps://developer.android.com/guide/topics/security/permissions.html#normal-dangerous)を必要とする場合、Android 6はそのアクセス許可をチェックする必要があるため、マニフェストのアクセス権を定義するだけでは不十分です。 この新しい権限管理の理由は、アンドロイドユーザーがアプリのアクセス許可を有効/無効にできるという事実に関連しているため、特定の機能(カメラ、GPSなど)がデフォルトでは許可されておらず、 。

私が最も使用さだと思いますが、アプリの権限を管理するのに役立つ多くのライブラリがありますが権限ディスパッチャです:https://github.com/hotchemi/PermissionsDispatcher

はまたここに公式ドキュメントを見てみましょう:https://developer.android.com/training/permissions/requesting.html

関連する問題