Android
マニフェストファイル
サーチ…
前書き
Manifestは厳密に "AndroidManifest.xml"という名前の必須ファイルで、アプリケーションのルートディレクトリにあります。これは、アプリケーション名、アイコン、Javaパッケージ名、バージョン、アクティビティ宣言、サービス、アプリケーション権限、その他の情報を指定します。
宣言コンポーネント
マニフェストの主なタスクは、アプリケーションのコンポーネントについてシステムに通知することです。たとえば、マニフェストファイルは次のようにアクティビティを宣言できます。
<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
<application android:icon="@drawable/app_icon.png" ... >
<activity android:name="com.example.project.ExampleActivity"
android:label="@string/example_label" ... >
</activity>
...
</application>
</manifest>
<application>
要素では、 android:icon
属性は、アプリケーションを識別するアイコンのリソースを指します。
この要素では、 android:name
属性でアクティビティサブクラスの完全修飾クラス名を指定し、android:label属性で、アクティビティのユーザーが表示するラベルとして使用する文字列を指定します。
このようにすべてのappコンポーネントを宣言する必要があります:
- <activity>
要素
- <service>
要素
- 放送受信機のための<receiver>
要素
- コンテンツプロバイダーの<provider>
要素
ソースには含まれていても、マニフェストで宣言していないアクティビティ、サービス、およびコンテンツプロバイダは、システムからは見えないため、決して実行することはできません。ただし、ブロードキャストレシーバは、マニフェストで宣言するか、コードで動的に作成し( BroadcastReceiver
オブジェクトとして)、 registerReceiver()
呼び出してシステムに登録することができます。
アプリケーションのマニフェストファイルを構造化する方法の詳細については、AndroidManifest.xmlファイルのドキュメントを参照してください。
マニフェストファイルのアクセス許可を宣言する
APIの保護された部分にアクセスするため、または他のアプリケーションとやりとりするためにアプリケーションが必要とする許可は、 AndroidManifest.xml
ファイルで宣言する必要があります。これは、 <uses-permission />
タグを<uses-permission />
して行います。
構文
<uses-permission android:name="string"
android:maxSdkVersion="integer"/>
android:name:これは必要な権限の名前です
android:maxSdkVersion:この権限をアプリに付与する最高のAPIレベル。この権限を設定することはオプションで、アプリが必要とする権限が特定のAPIレベルで不要になった場合にのみ設定する必要があります。
サンプルAndroidManifest.xml:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.samplepackage">
<!-- request internet permission -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- request camera permission -->
<uses-permission android:name="android.permission.CAMERA"/>
<!-- request permission to write to external storage -->
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="18" />
<application>....</application>
</manifest>
* 権限についても参照してください。