Android DevelopmentOctober 31, 2026•107 views

Androidの連絡先権限変更:MANAGE_CONTACTS移行ガイド

次期Androidでは連絡先への直接書き込みが制限されます。連絡先Intent、Contact Picker、People Directory、MANAGE_CONTACTSの使い分けを解説します。

#Android permissions#contacts#Android development#Google Play policy#privacy
Androidの連絡先権限変更:MANAGE_CONTACTS移行ガイド

この記事の要約

This article covers Androidの連絡先権限変更:MANAGE_CONTACTS移行ガイド. 次期Androidでは連絡先への直接書き込みが制限されます。連絡先Intent、Contact Picker、People Directory、MANAGE_CONTACTSの使い分けを解説します。

ポイント

  • Published: October 31, 2026
  • Category: Android Development
  • Tags: Android permissions, contacts, Android development, Google Play policy, privacy
  • Views: 107
  • Reading time: ~10 min read

"次期Androidでは連絡先への直接書き込みが制限されます。連絡先Intent、Contact Picker、People Directory、MANAGE_CONTACTSの使い分けを解説します。"

BTTC Blog — "Androidの連絡先権限変更:MANAGE_CONTACTS移行ガイド"

Androidの連絡先権限変更と新しい編集フロー

Androidの連絡先アクセスが変わります。これはアプリ開発、Google Playのポリシー審査、そしてユーザーが見るプライバシーの選択肢に影響します。Googleは2026年10月21日、次期Androidをターゲットにするアプリでは、WRITE_CONTACTSを使った直接書き込みが標準では認められなくなると発表しました。多くのアプリは、標準の連絡先Intentや、より範囲の狭いシステム機能へ移行する必要があります。

これはすべての連絡先機能が禁止されるという意味ではありません。既存アプリが突然動かなくなるという意味でもありません。大きな変化は、バックグラウンドでアドレス帳を広く変更できる権限から、ユーザーが開始して確認する操作へ移ることです。連絡先を追加する、編集する、ユーザーに選ばせる、あるいはシステムのディレクトリにアプリ内の通話やメッセージ機能を公開する、といった境界が明確になります。

要点:多くのアプリは連絡先を直接書き込まない

名刺を保存したり、電話番号を追加したり、1件の連絡先を編集したりする場合は、ACTION_INSERT、ACTION_EDIT、ACTION_INSERT_OR_EDITなどの標準Intentを使います。次期Androidを搭載した端末では、これらの処理はシステム編集画面を開き、広い書き込み権限を必要としません。

ユーザーが人を1人選ぶだけならContact Pickerを使います。通話やメッセージのアプリが「このアプリで通話」のような機能を表示したいなら、アドレス帳に行を追加する代わりにPeople Directoryを検討します。MANAGE_CONTACTSは、専用の連絡先管理アプリ、ダイヤラーの置き換え、バックアップツールなど、本当に広い管理が必要な製品に限定すべきです。詳細はAndroid Developersの公式発表と一般的なIntentのリファレンスを確認してください。

なぜ広い書き込み権限を見直すのか

従来のモデルでは、1件だけ保存したいアプリと、アドレス帳全体を継続的に管理したいアプリが、ほぼ同じ権限を要求していました。WRITE_CONTACTSは便利ですが、バックグラウンドで大量の変更を可能にします。ユーザーは権限ダイアログだけで、アプリが本当に必要とする範囲を判断しにくい状態でした。

新しい設計では、ユーザーが今行っている操作を中心にします。システムの連絡先編集画面を開けば、保存される項目、保存先アカウント、最後の確認をユーザーが見られます。アプリに無制限の書き込み能力を渡さず、最後の判断をユーザーに残せます。Androidの他のプライバシー機能と同じく、目的を完了するための最小限の能力を使う考え方です。

Googleは端末ごとの動作差も修正します。これまで連絡先Intentでは写真が失われたり、新規作成の入口が見つけにくかったり、戻るボタンの挙動が違ったりしました。次期Androidでは追加と編集の動作が標準化され、テストしやすくなります。

開発者が選ぶべき移行方法

Intentで1件の連絡先を追加・編集する

名刺スキャナー、チャット、注文、イベントのアプリは、通常は広い権限を必要としません。新規作成にはACTION_INSERT、既存の連絡先に電話やメールを加える可能性があるならACTION_INSERT_OR_EDIT、明確なURIを編集するならACTION_EDITを使います。

Intentを作れるかだけでなく、アカウント選択、写真、電話番号、メール、キャンセル、画面回転、保存後の結果まで確認してください。標準のContactsContract.CommonDataKinds以外のMIMEタイプは編集画面で無視される可能性があるため、渡せない項目への代替処理も用意します。

Contact Pickerでユーザーに選ばせる

ユーザーが選んだ1人だけが必要なのに、アドレス帳全体を読むのは過剰です。Android 17から利用できるContact Pickerなら、広い権限なしでユーザーが連絡先を選べます。招待、支払い、旅行の共有、配車などでは、データベース全体ではなく選択された人だけが必要なことが多いでしょう。

プライバシーだけでなく、体験も改善します。機能を使う瞬間に、なぜ連絡先情報が必要なのかを説明できるため、目的が分からない状態で権限を求めるより納得されやすくなります。

People Directoryでアプリ内の到達方法を公開する

通話やメッセージアプリが、連絡先に追加の行を書き込み「このアプリで通話」のような項目を表示することがあります。Googleは2026年第4四半期のAndroid QPR2でPeople Directoryを導入する予定です。アプリはユーザーの個人アドレス帳を変更せず、アプリ内での連絡方法を公開できます。

連絡先アプリは個人のアドレス帳を管理し、ディレクトリはアプリの機能を説明するという分担になります。QPR2の提供状況を確認し、対応端末でテストしてから古い互換処理を削除してください。

MANAGE_CONTACTSが必要なケース

MANAGE_CONTACTSは通常の実行時ダイアログではなく、特別なアプリアクセスです。ユーザーは設定 > 特別なアプリアクセス > 連絡先を管理から有効にします。対象アプリには読み取りも含まれるため、必ずしもREAD_CONTACTSを別に要求する必要はありません。

専用の連絡先管理、ダイヤラーの置き換え、大量更新を行う迷惑電話対策、企業同期、バックアップと復元、端末間移行などが対象になり得ます。独自の編集画面を残したいという理由だけでは不十分です。

移行チェックリスト

  1. WRITE_CONTACTS、ContentResolverへの直接書き込み、独自の連絡先行、Playの申告を検索します。
  2. 機能を追加、編集、選択、アプリ内の到達性、広域管理に分類します。
  3. 1件の操作を標準Intentに置き換えます。
  4. 選択だけならContact Pickerを使います。
  5. 通話やメッセージの入口にはPeople Directoryを評価します。
  6. 広い管理が製品の中心である場合だけMANAGE_CONTACTSを残し、理由を記録します。
  7. 新旧Androidでキャンセル、不完全なデータ、権限境界をテストします。
  8. Manifest、Play申告、プライバシーポリシー、アプリ内説明を一致させます。

ユーザーも、権限の目的を説明し、ユーザーが開始する操作を提供するアプリを優先できます。Androidアプリを探すときは、BTTCのAndroidソフトウェアディレクトリで公式配布元、権限、バージョン、プライバシー情報を比較してください。

実装時に確認したいデータの扱い

連絡先Intentへ渡すデータは、ユーザーが理解できる最小限に絞ります。名前、電話番号、メールアドレスなど、今回の操作に直接関係する項目だけを設定し、アプリ内部の識別子や不要なメモを勝手にコピーしないことが重要です。ユーザーが別のアカウントを選んだ場合でも、どのアカウントに保存されたかをアプリが誤って断定しないよう、戻り値と画面状態を確認してください。

キャンセルを失敗として扱わない設計も必要です。システム編集画面から戻った場合、アプリは同じ処理を無限に再試行したり、同じ情報を自動的に保存したりしてはいけません。保存されたかどうかを確認できない場合は、ユーザーに状態を説明し、必要ならもう一度明示的に開始してもらう方が安全です。

テストと公開審査への備え

移行ではエミュレーターだけに依存しないでください。複数のアカウント、連絡先が空の端末、写真付きの連絡先、仕事用プロファイル、オフライン状態、異なる画面サイズを組み合わせて確認します。端末メーカーの連絡先アプリが異なる場合にも、フィールドが失われないか、戻り値を正しく扱えるかを確認します。

Playの申告内容は実装と一致しなければなりません。Manifestに残った古い権限、使われていない同期コード、説明文の「すべての連絡先を管理」という表現は、実際のユーザー操作とずれる可能性があります。コードを置き換えた後に権限を削除し、プライバシーポリシー、ストア説明、サポート記事も同じ用語に更新してください。

チームで決めておく境界

エージェントや自動化ツールに移行作業を任せる場合も、権限の追加と削除は人間のレビュー対象にします。自動ツールには検索、テストケースの作成、Intentへの置換候補の提示を任せられますが、Manifestの権限やPlayの宣言を変更してよいかはリポジトリのルールで制限します。変更の差分、テスト結果、対象SDKを記録してからリリース候補を作ると、後から理由を追跡できます。

移行の判断は、権限の名前だけでなくデータの流れでも確認します。アプリがサーバーへ連絡先を同期する場合、Intentへの変更だけでは十分ではありません。送信する項目、保存期間、削除方法、アカウントの切り替えを文書化し、ユーザーが理解できる説明を用意します。直接書き込みをやめても、不要な読み取りやアップロードが残っていれば、プライバシー上の問題は解決しません。

よくある質問

すべてのAndroidアプリにすぐ影響しますか?

いいえ。直接書き込みの制限は次期Androidをターゲットにするアプリが対象です。古いターゲットのアプリは現在の動作を維持します。

Intentで連絡先を削除できますか?

できません。標準の削除Intentはありません。通常は連絡先アプリでユーザーが削除し、正当なMANAGE_CONTACTSを持つアプリだけが直接削除できます。

MANAGE_CONTACTSはREAD_CONTACTSの代わりになりますか?

対象アプリには読み取りが含まれますが、読むだけで変更しないアプリはREAD_CONTACTSを正当に必要とする場合があります。

独自の連絡先編集画面を残せますか?

広い連絡先管理が製品の中心である場合だけです。独自UIを残したいだけでは理由になりません。

まとめ

Androidの連絡先アクセスは、ユーザーが確認する明確なフローへ移行します。多くのアプリでは、保存と編集に標準Intent、選択にContact Picker、アプリ内の通話やメッセージにPeople Directoryを使えば十分です。MANAGE_CONTACTSは本当にアドレス帳を広く管理する製品に限定し、target SDKの変更をリリース前に検証してください。

💡結論

Androidの連絡先アクセスはユーザー確認型へ移行します。多くのアプリは標準Intent、Contact Picker、People Directoryを使い、MANAGE_CONTACTSは広い管理が本当に必要な場合だけに限定してください。

❓よくある質問

すべてのAndroidアプリにすぐ影響しますか?
いいえ。次期Androidをターゲットにするアプリが対象で、古いターゲットは現在の動作を維持します。
Intentで連絡先を削除できますか?
できません。標準の削除Intentはなく、通常は連絡先アプリで削除します。
MANAGE_CONTACTSはREAD_CONTACTSの代わりになりますか?
対象アプリには読み取りが含まれますが、読み取りだけのアプリはREAD_CONTACTSを必要とする場合があります。
独自の連絡先編集画面を残せますか?
製品の中心が広い連絡先管理である場合に限られます。独自UIだけでは理由になりません。

📋記事クイックリファレンス

📅
公開日

October 31, 2026

🏷️
カテゴリ

Android Development

🔖
タグ
Android permissionscontactsAndroid developmentGoogle Play policyprivacy