2016-04-23 3 views
1

APKをインストールすると、アプリに特別な権限は必要ないことが示されます。Androidアプリがインストール時にアクセス許可を要求しないのはなぜですか?

アプリ内でカメラを起動すると、アプリにカメラへのアクセスを許可するかどうかを尋ねられますが、これは問題ありません。

マイクロフォンを使用しようとすると、権限の問題により、マイクロソフトはマイクロソフトに質問したり強制終了したりしません。

EDIT(解説):アプリがこれらの権限を要求しないのはなぜですか?

マニフェスト:アンドロイド6.0で

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="lbu.c3369131.noter" 
android:versionCode="1" 
android:versionName="1.0"> 
<uses-sdk 
    android:minSdkVersion="23" 
    android:targetSdkVersion="23" /> 

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> 
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.CAMERA" /> 
<uses-permission android:name="android.permission.RECORD_AUDIO" /> 
<uses-permission android:name="android.permission.CAPTURE_AUDIO_OUTPUT" /> 
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> 

<uses-feature android:name="android.hardware.camera" /> 
<uses-feature android:name="android.hardware.camera.autofocus" /> 

<application 
+0

@tynnなぜアクセス許可を要求していませんか? – RJH94

+1

'RECORD_AUDIO'を求めて' requestPermissions() 'を呼び出すのではないでしょうか。 Android 6.0以降のデバイスでは、 'targetSdkVersion'が23+以上であれば、危険なアクセス権を自分で求めなければなりません。独自のカスタムROMなどをビルドしていない限り、 'CAPTURE_AUDIO_OUTPUT'を保持することはできません。 – CommonsWare

+0

@CommonsWareあなたはもう一度私を救った!私はそれを受け入れることができるように答えを書くようにしてください:) – RJH94

答えて

2

、23以上のtargetSdkVersionと、あなたがマニフェストに彼らのために<uses-permission>要素を有することに加えて、すべてのdangerousアクセス権のためrequestPermissions()を呼び出す必要があります。ユーザーからのアクセス許可をいつどこで要求するか(最初の実行時、ユーザーがBig Red Buttonをクリックするなど)はあなた次第です。

あなたの場合、このようにCAMERAをリクエストしたようですが、RECORD_AUDIOをリクエストできませんでした。別にそれらを要求することは、特にあなたが写真のためにRECORD_AUDIOを必要としないので、スチルカメラと録画ビデオの両方を操作している場合は、意味をなさないかもしれません。たとえば、this sample appでは、初めて実行するときにCAMERA(およびWRITE_EXTERNAL_STORAGE)をリクエストしますが、ユーザーが特にビデオを録画するように頼んだ場合は、RECORD_AUDIOと尋ねます。

実行時にdangerousアクセス許可を要求しなかった場合、そのアクセス許可で保護されたAPIを使用すると、通常はSecurityExceptionが返されます。

関連する問題