<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>permission</title>
	<atom:link href="https://techgrowup.net/tag/permission/feed/" rel="self" type="application/rss+xml" />
	<link>https://techgrowup.net</link>
	<description>エンジニアを強くする</description>
	<lastBuildDate>Sat, 24 Aug 2024 13:45:22 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://techgrowup.net/wp-content/uploads/2021/05/hp-icon-150x150.png</url>
	<title>permission</title>
	<link>https://techgrowup.net</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【Androidアプリ開発】パーミッション(権限)の概要と一覧</title>
		<link>https://techgrowup.net/permission/</link>
					<comments>https://techgrowup.net/permission/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[techgrowup]]></dc:creator>
		<pubDate>Fri, 14 May 2021 13:20:20 +0000</pubDate>
				<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Androidアプリ開発]]></category>
		<category><![CDATA[permission]]></category>
		<category><![CDATA[パーミッション]]></category>
		<category><![CDATA[権限]]></category>
		<guid isPermaLink="false">https://techgrowup.net/?p=571</guid>

					<description><![CDATA[はじめに 　本記事ではAndroidアプリ開発における、パーミッション(権限）についての説明と一覧を紹介したいと思います。 パーミッション(権限)とは 　Androidアプリ開発における、パーミッション（権限）とは、アプ [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h1 class="wp-block-heading">はじめに</h1>



<p class="wp-block-paragraph">　本記事ではAndroidアプリ開発における、パーミッション(権限）についての説明と一覧を紹介したいと思います。</p>



<p class="wp-block-paragraph"></p>



<h2 class="wp-block-heading">パーミッション(権限)とは</h2>



<p class="wp-block-paragraph">　Androidアプリ開発における、パーミッション（権限）とは、<span class="marker-under">アプリを利用するユーザーを保護するために、特定の機能に対してアクセス保護を行うためのもの</span>です。例えば、ユーザーの連絡先情報やカメラやBluetoothなど該当します。これらをユーザーの許可なしに勝手にアプリが利用してはプライバシーに影響が出ると同時に、犯罪に繋がる恐れがあります。以下パーミッションを権限と呼びます。</p>



<p class="wp-block-paragraph"><br>　Android 6.0まではGoogle Playのインストール時に、取得したい権限を表示すればよかったのですが、Android 6.0以降は特定の権限に関しては、アプリ内で同意を取る必要があります。皆さんも下記画面は見たことがあるのではないでしょうか。<span class="marker-under">こちらが同意されると、アプリに対して権限が付与される</span>という仕組みになります。</p>



<figure class="wp-block-image aligncenter size-large is-resized"><img fetchpriority="high" decoding="async" width="925" height="902" src="https://techgrowup.net/wp-content/uploads/2021/05/runtime-permission.png" alt="ランタイムパーミッションの画面" class="wp-image-582" style="aspect-ratio:463/451" srcset="https://techgrowup.net/wp-content/uploads/2021/05/runtime-permission.png 925w, https://techgrowup.net/wp-content/uploads/2021/05/runtime-permission-300x293.png 300w, https://techgrowup.net/wp-content/uploads/2021/05/runtime-permission-768x749.png 768w" sizes="(max-width: 925px) 100vw, 925px" /><figcaption class="wp-element-caption">権限同意画面</figcaption></figure>



<p class="wp-block-paragraph">　また、<span class="marker-under">権限は好き放題つけていいわけではなく、使うものだけ</span>にしましょう。例えば位置情報を利用しないアプリなのに、位置情報の権限をしてはいけません。セキュリティの面やユーザーを守るためにも必要な権限のみをつけましょう。</p>



<div class="wp-block-cocoon-blocks-icon-box common-icon-box block-box alert-box">
<p class="wp-block-paragraph">必要な権限のみ取得するようにしよう！</p>
</div>



<h2 class="wp-block-heading">パーミッション(権限）の使い方</h2>



<p class="wp-block-paragraph">　続いて、権限を実際にどうやって使っていくのかを説明します。まず記載する場所ですが、AndroidManifest.xmlに記載していきます。下記がAndroidManifest.xmlの画面ですが、<br>&lt;<span class="marker-under">uses-permission&gt;</span>というタグが見えるかと思います。こちらを利用して権限の宣言をしていきます。また、その他にも設定できるオプションがありますので、合わせて説明します。</p>



<figure class="wp-block-image size-large is-resized"><img decoding="async" width="1024" height="357" src="https://techgrowup.net/wp-content/uploads/2021/05/androidmanifest-permission-1024x357.png" alt="AndroidManifestのパーミッション宣言" class="wp-image-583" style="aspect-ratio:840/292" srcset="https://techgrowup.net/wp-content/uploads/2021/05/androidmanifest-permission-1024x357.png 1024w, https://techgrowup.net/wp-content/uploads/2021/05/androidmanifest-permission-300x105.png 300w, https://techgrowup.net/wp-content/uploads/2021/05/androidmanifest-permission-768x268.png 768w, https://techgrowup.net/wp-content/uploads/2021/05/androidmanifest-permission.png 1106w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">AndroidManifest.xmlのパーミッション宣言</figcaption></figure>



<h3 class="wp-block-heading">&lt;uses-permission&gt;</h3>



<p class="wp-block-paragraph">　まず先ほども紹介した、&lt;uses-permission&gt;タグについてです。こちらは利用したい権限を宣言することで、アプリに該当の権限を付与できるタグです。例えばインターネットを利用する場合は、以下のように宣言します。</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="<uses-permission android:name=&quot;android.permission.INTERNET&quot; /&gt;" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #808080">&lt;</span><span style="color: #569CD6">uses-permission</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">android:name</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;android.permission.INTERNET&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #808080">/&gt;</span></span></code></pre></div>



<p class="wp-block-paragraph">　また、外部ストレージに書き込み権限を付与するためには以下のように記載します。</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code=" <uses-permission android:name=&quot;android.permission.WRITE_EXTERNAL_STORAGE&quot;/&gt;" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #D4D4D4"> </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">uses-permission</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">android:name</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;android.permission.WRITE_EXTERNAL_STORAGE&quot;</span><span style="color: #808080">/&gt;</span></span></code></pre></div>



<p class="wp-block-paragraph">　見てみるとおわかりになると思いますが、INTERNETというキーワードと、WRITE_EXTERNAL_STORAGEの名前が違うだけですよね。これが該当の権限のキーワードということになります。</p>



<h3 class="wp-block-heading">&lt;uses-feature&gt;</h3>



<p class="wp-block-paragraph">　続いて、&lt;uses-feature&gt;タグについてです。こちらはハードウェアやソフトウェアの機能要件を満たさない端末からアプリをフィルタします。例えば、Bluetoothを利用するアプリが、Bluetoothが搭載されていない端末（最近はあまりありませんが）に対してダウンロードされても利用することが出来ませんので、このような場合、<span class="marker-under">Google Playの配信端末から排除することが出来ます</span>。</p>



<p class="wp-block-paragraph">　具体的に利用する場合は、下記のようにAndroidManifest.xmlに記述します。</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="<uses-feature android:name=&quot;android.hardware.bluetooth&quot; /&gt;" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #808080">&lt;</span><span style="color: #569CD6">uses-feature</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">android:name</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;android.hardware.bluetooth&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #808080">/&gt;</span></span></code></pre></div>



<p class="wp-block-paragraph"></p>



<h2 class="wp-block-heading">保護レベル</h2>



<p class="wp-block-paragraph">　権限には保護レベルという考え方が存在します。保護レベルとは各権限に対してGoogleが危険性を判断し、定義づけているものです。具体的には各権限は<span class="marker-under">&#8220;normal&#8221; , &#8220;dangerous&#8221;, &#8220;signature&#8221;,</span> に振り分けられています。それぞれについて説明します。<br>　※signatureOrSystemというレベルもありますが、今回は省きます。</p>



<h3 class="wp-block-heading">normal </h3>



<p class="wp-block-paragraph">　normalとはその名の通り、<span class="marker-under">低リスクとみなされている権限</span>につけられています。これが付けられている権限はユーザに対して同意を取得する必要はなく、<span class="marker-under">インストール時に表示しておくだけで、アプリは権限を取得することが可能になります</span>。<br>　例えばACCESS_NETWORK_STATEという権限は、アプリケーションがネットワークの状態を取得するための権限になりますが、これを取得されてもユーザーは大きなリスクを追わないため、normalとなります。</p>



<h3 class="wp-block-heading">dangerous</h3>



<p class="wp-block-paragraph">　dangerousとは、危険という意味ですが、こちらは<span class="marker-under">該当権限を利用するとユーザーに悪影響があると考えられる権限</span>に対して付けられています。例えば、CAMERAという権限はアプリがカメラにアクセスできるようになる権限ですが、カメラ機能はユーザーのプライバシーに大きな影響を与えるものになるため、<span class="marker-under">ユーザーの同意がなければ利用しようしてはいけないと</span>考えれられ、dangerousに指定されています。</p>



<p class="wp-block-paragraph"></p>



<h3 class="wp-block-heading">signature</h3>



<p class="wp-block-paragraph">　signatureは通常の権限ではなく、シ<span class="marker-under">ステム権限と呼ばれる端末を製造しているメーカーが作成した権限で特定の機能を利用できるようにした権限</span>です。例えばDELETE_PACKAGESという、他のアプリを消すことができる権限は、かなり強力ですよね。この権限を持ったアプリが、他のアプリを勝手に削除してしまっては大変なことになるので、signatureが付けられています。<br>　基本的には端末を製造しているメーカーが作るアプリなどに、特定の機能が必要な場合のみメーカー署名が使われて、権限が使われることや、ルート化されている端末に対しては利用することが可能になります。（一般に売られている端末はルート化されていませんが、脱獄という方法が使える場合があります）<br></p>



<h2 class="wp-block-heading">パーミッション(権限）一覧</h2>



<p class="wp-block-paragraph">　続いて、権限はたくさんありますので、覚えられない方も多くいると思います（私もあまりお覚えていません）。ここに主要な権限の一覧を記載しておきますので、お気に入りなどに入れ必要な時に見て頂ければと思います。</p>



<figure class="wp-block-table aligncenter"><div class="scrollable-table"><table><thead><tr><th>パーミッション</th><th>保護レベル</th><th>説明</th></tr></thead><tbody><tr><td>ACCESS_NETWORK_STATE</td><td>normal</td><td>アプリケーションがネットワークに関する情報にアクセスできるようにします。</td></tr><tr><td>ACCESS_WIFI_STATE</td><td>normal</td><td>アプリケーションがWi-Fiネットワークの情報にアクセスできるようにします。</td></tr><tr><td>BLUETOOTH</td><td>normal</td><td>アプリケーションとペアリングされたBluetooth機器との接続を可能にします。</td></tr><tr><td>CHANGE_NETWORK_STATE</td><td>normal</td><td>アプリケーションがネットワークの接続状態を変更できるようにします。</td></tr><tr><td>CHANGE_WIFI_STATE</td><td>normal</td><td>アプリケーションによるWi-Fi接続状態の変更を可能にします。</td></tr><tr><td>FOREGROUND_SERVICE</td><td>normal</td><td>通常のアプリケーションがService.startForegroundを使用できるようにします。</td></tr><tr><td>INTERNET</td><td>normal</td><td>アプリケーションがネットワークソケットを開くことを可能にします。</td></tr><tr><td>KILL_BACKGROUND_PROCESSES</td><td>normal</td><td>アプリケーションがActivityManager.killBackgroundProcesses(String)を<br>呼び出せるようにします。</td></tr><tr><td>MODIFY_AUDIO_SETTINGS</td><td>normal</td><td>アプリケーションがグローバルなオーディオ設定を変更することができます。</td></tr><tr><td>NFC</td><td>normal</td><td>アプリケーションがNFC上でI/O操作を行うことができます。</td></tr><tr><td>NFC_PREFERRED_PAYMENT_INFO</td><td>normal</td><td>アプリケーションがNFC優先決済サービス情報を受信できるようにします。</td></tr><tr><td>NFC_TRANSACTION_EVENT</td><td>normal</td><td>アプリケーションがNFCトランザクションイベントを受信できるようにします。</td></tr><tr><td>QUERY_ALL_PACKAGES</td><td>normal</td><td>マニフェストの宣言に関係なく、デバイス上の通常のアプリの問い合わせを可能にします。</td></tr><tr><td>SET_ALARM</td><td>normal</td><td>アプリケーションが、ユーザーにアラームを設定するIntentを<br>ブロードキャストすることができます。</td></tr><tr><td>TRANSMIT_IR</td><td>normal</td><td>デバイスのIRトランスミッターがある場合は、それを使用できます。</td></tr><tr><td>USE_BIOMETRIC</td><td>normal</td><td>デバイスがサポートするバイオメトリックモダリティをアプリで使用できるようにします。</td></tr><tr><td>VIBRATE</td><td>normal</td><td>バイブレーターへのアクセスを可能にします。</td></tr><tr><td>WAKE_LOCK</td><td>normal</td><td>PowerManagerのWakeLocksを使って、プロセッサのスリープや画面の輝度低下を<br>防ぐことができます。</td></tr><tr><td>ACCESS_BACKGROUND_LOCATION</td><td>dangerous</td><td>アプリがバックグラウンドで位置情報にアクセスすることを許可します。<br>この許可を要求する場合は、ACCESS_COARSE_LOCATIONまたは<br>ACCESS_FINE_LOCATIONのいずれかも要求する必要があります。<br>この許可を要求するだけでは、位置情報へのアクセスはできません。</td></tr><tr><td>ACCESS_COARSE_LOCATION</td><td>dangerous</td><td>アプリがおおよその位置情報にアクセスできるようにします。代わりにACCESS_FINE_LOCATIONを指定することもできます。</td></tr><tr><td>ACCESS_FINE_LOCATION</td><td>dangerous</td><td>アプリが正確な位置情報にアクセスできるようにします。代わりにACCESS_COARSE_LOCATIONを指定することもできます。</td></tr><tr><td>ANSWER_PHONE_CALLS</td><td>dangerous</td><td>着信した電話にアプリが応答できるようにします。</td></tr><tr><td>BODY_SENSORS</td><td>dangerous</td><td>心拍数など、ユーザーが体の中で起こっていることを測定するために<br>使用するセンサーからのデータに、アプリケーションがアクセスできるようにします。</td></tr><tr><td>CALL_PHONE</td><td>dangerous</td><td>ユーザーが電話を確認するためのダイアラーユーザーインターフェースを経由せずに、アプリケーションから電話をかけることができます。</td></tr><tr><td>CAMERA</td><td>dangerous</td><td>これにより、すべてのカメラ機能に対して uses-feature マニフェスト要素が<br>自動的に適用されます。すべてのカメラ機能を必要としない場合や、<br>カメラが利用できない場合でも適切に動作する場合は、すべてのカメラ機能を<br>サポートしていないデバイスにインストールするために、<br>マニフェストを適切に変更する必要があります。</td></tr><tr><td>READ_CONTACTS</td><td>dangerous</td><td>アプリケーションがユーザーの連絡先データを読み取ることを許可します。</td></tr><tr><td>READ_EXTERNAL_STORAGE</td><td>dangerous</td><td>アプリケーションが外部ストレージからの読み取りを可能にします。</td></tr><tr><td>READ_PHONE_STATE</td><td>dangerous</td><td>現在の携帯電話ネットワーク情報、進行中の通話のステータス、<br>デバイスに登録されているPhoneAccountsのリストなど、<br>電話の状態への読み取り専用のアクセスを許可します。</td></tr><tr><td>READ_SMS</td><td>dangerous</td><td>アプリケーションがSMSメッセージを読むことを許可します。</td></tr><tr><td>WRITE_EXTERNAL_STORAGE</td><td>dangerous</td><td>アプリケーションによる外部ストレージへの書き込みを許可します。</td></tr></tbody></table></div><figcaption class="wp-element-caption">主要パーミッション一覧</figcaption></figure>



<p class="wp-block-paragraph"></p>



<h2 class="wp-block-heading">カスタム権限について</h2>



<p class="wp-block-paragraph">　カスタム権限とは、<span class="marker-under">アプリ開発者自身が権限を作成し、機能を制限できる機能</span>のことです。カスタム権限を定義すると、他のアプリとリソースや機能の共有をすることが可能になります。<br>　例えば、通常アプリは他のアプリを起動させることが可能なのですが、他のアプリから自分のアプリを起動されたくないような場合に、カスタム権限を持っている他のアプリのみ自分のアプリを起動することが出来るような権限を作ることが出来ます。以下が例になります。</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="    <permission
        android:name=&quot;com.example.myapplication.MY_PERMISSION&quot;
        android:label=&quot;@string/permissoion_label&quot;
        android:description=&quot;@string/permission_description&quot;
        android:permissionGroup=&quot;android.permission-group.COST_MONEY&quot;
        android:protectionLevel=&quot;normal&quot; /&gt;" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #D4D4D4">    </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">permission</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #9CDCFE">android:name</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;com.example.myapplication.MY_PERMISSION&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #9CDCFE">android:label</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;@string/permissoion_label&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #9CDCFE">android:description</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;@string/permission_description&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #9CDCFE">android:permissionGroup</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;android.permission-group.COST_MONEY&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #9CDCFE">android:protectionLevel</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;normal&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #808080">/&gt;</span></span></code></pre></div>



<p class="wp-block-paragraph">　これで定義が完成しましたので、これを利用したい場合には、他のアプリから以下のようにりようすることで、カスタム権限を利用することができるようになります。</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="    <uses-permission android:name=&quot;com.example.myapplication.MY_PERMISSION&quot; /&gt;" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #D4D4D4">    </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">uses-permission</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">android:name</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;com.example.myapplication.MY_PERMISSION&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #808080">/&gt;</span></span></code></pre></div>



<p class="wp-block-paragraph"></p>



<h2 class="wp-block-heading">まとめ</h2>



<p class="wp-block-paragraph">　本記事ではAndroidアプリ開発における、パーミッション（権限）の概要や、使い方、主要なパーミッション一覧、カスタム権限について説明しました。<br>　Androidアプリ開発では昨今のプライバシーの規制も相まって、必ず権限については確認し、適切に利用することが必要ですので、ぜひ覚えましょう。</p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://techgrowup.net/permission/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Disk: Enhanced  を使用したページ キャッシュ

Served from: techgrowup.net @ 2026-07-03 00:31:51 by W3 Total Cache
-->