Skip to content

Most visited

Recently visited

navigation

パーミッションの宣言

すべての Android アプリは制限されたアクセス サンドボックス内で実行されます。アプリが自身のサンドボックスの外部にあるリソースや情報を使用しなければならない場合、アプリは適切なパーミッションをリクエストする必要があります。アプリ マニフェストにパーミッションを記載することにより、アプリがパーミッションを必要としていることを宣言します。

パーミッションは保護レベルに応じて、自動的に付与されるか、端末のユーザーによって付与されるかが決まります。たとえば、アプリが端末のフラッシュをオンにするためのパーミッションをリクエストすると、そのパーミッションは自動的に付与されます。一方、アプリでユーザーの連絡先データを読み取る必要がある場合は、ユーザーにパーミッションを付与するよう求めます。ユーザーは、プラットフォームのバージョンに応じて、アプリのインストール時(Android 5.1 以前のバージョン)またはアプリの実行時(Android 6.0 以降のバージョン)にパーミッションを付与します。

アプリに必要なパーミッションを決定する

アプリを開発するときは、パーミッションが必要な機能が使用されるシーンを考慮する必要があります。通常、アプリでは、そのアプリで作成されない情報やリソースを使用するとき、または端末や他のアプリの動作に影響を及ぼすアクションを実行するときにパーミッションが必要になります。たとえば、インターネットにアクセスしたり、端末のカメラを使用したり、Wi-Fi をオンまたはオフにする必要がある場合に適切なパーミッションを必要とします。システム パーミッションのリストについては、Normal パーミッションと Dangerous パーミッションを参照してください。

アプリは、直接実行するアクションに対するパーミッションのみを必要とします。アプリが別のアプリにタスクの実行または情報の提供をリクエストする場合、パーミッションは不要です。たとえば、アプリがユーザーのアドレス帳を読み取る必要がある場合、アプリには READ_CONTACTS パーミンションが必要です。一方、アプリがインテントを使用して、ユーザーの連絡先アプリからの情報をリクエストする場合、このアプリにはパーミッションが不要です。ただし、その連絡先アプリはパーミッションを必要とします。詳細については、インテントの使用を検討するを参照してください。

マニフェストにパーミッションを追加する

アプリがパーミッションを必要としていることを宣言するには、アプリ マニフェスト内で、最上位の <manifest> 要素の子要素として <uses-permission> 要素を挿入します。たとえば、アプリで SMS メッセージを送信する必要がある場合は、マニフェストに次の行を記述します。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.example.snazzyapp">

    <uses-permission android:name="android.permission.SEND_SMS"/>
    

    <application ...>
        ...
    </application>

</manifest>

パーミッションを宣言した後のシステムの動作は、パーミッションの保護レベルによって異なります。ユーザーのプライバシーに影響を及ぼさないパーミッションは、自動的に付与されます。パーミッションによりユーザーの機密情報へのアクセスが可能になる場合、ユーザーはそのリクエストを承認するよう求めれらます。さまざまな種類のパーミッションの詳細情報については、Normal パーミッションと Dangerous パーミッションを参照してください。

This site uses cookies to store your preferences for site-specific language and display options.

Get the latest Android developer news and tips that will help you find success on Google Play.

* Required Fields

Hooray!

WeChat で Google Developers をフォローする

Browse this site in ?

You requested a page in , but your language preference for this site is .

Would you like to change your language preference and browse this site in ? If you want to change your language preference later, use the language menu at the bottom of each page.

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.

Take a short survey?
Help us improve the Android developer experience. (Dec 2017 Android Platform & Tools Survey)