Androidスマホで写真や記事を共有しようとすると、画面上部に「最近使った連絡先」のようなアイコンが並びます。

便利な機能ではあるのですが、この連絡先はどこから来ているのでしょうか。
また、誰かに画面を見られたとき、共有メニューから最近やり取りした相手が分かってしまいます。これを表示しない設定はあるのでしょうか。
Sharing Shortcuts APIはAndroidの設計に深く組み込まれていて、設定ではオフにはできませんでした。
アプリごとのメッセージ送信のタイミングなどにシステムに共有先を登録されていて、削除するには(基本的には)アプリのユーザーデータを削除するしかありませんでした。
1. 「Sharing Shortcuts API」という仕組み
LINEでやり取りした相手やGmailで最近メールを送った相手が表示されています。
中には、連絡先アプリに登録されていない人もいます(LINE友だちなどは特に)。
つまり、共有メニューは連絡先アプリとは別のところから情報を取得しているようです。
Androidには、「Sharing Shortcuts API」という機能があります。
これは、各アプリが「この人に共有される可能性が高い」という候補をAndroid OSに提供する仕組みです1。
そして共有メニューを開いたとき、OSはこれらの候補をまとめて表示するのです。
Android 10(API level 29)で導入された、共有機能を高速化する新しいAPIです。
- 旧Direct Share:
共有時にアプリに「今、候補を教えて」と要求(プルモデル)
→ 遅延発生 - Sharing Shortcuts:
アプリが事前に候補を登録(プッシュモデル)
→ 即座に表示
例えば、LINEアプリは「最近トークした相手5人」をOSに教えます。
Gmailは「最近メールを送った相手」を教えます。
つまり、連絡先アプリの情報ではなく、各アプリが独自に提供した候補だったわけです。
- Sharing Shortcuts APIはAndroidの設計に深く組み込まれている
- システム全体で無効化する公式設定は提供されていない
GmailやLINEのストレージを削除すれば、候補を消去できます。
しかし、それではアプリが使えません。


アプリのキャッシュを消去したり、連絡先へのアクセス権限をオフにするだけではダメなのです。
なぜなら、各アプリが提供するSharing Shortcuts候補は、この設定とは独立して動作するからです。
LINEやGmailなどのアプリ側で候補を提供している限り、それらは表示され続けます。
1.1. 【開発者向け】アプリ内での実装
アプリ開発者であれば、以下のコードで自アプリの共有ショートカットを削除できます:
// すべての動的ショートカットを削除
ShortcutManagerCompat.removeAllDynamicShortcuts(context)
// 特定のショートカットのみ削除
ShortcutManagerCompat.removeDynamicShortcuts(
context,
listOf("shortcut_id_1", "shortcut_id_2")
)Code language: JavaScript (javascript)
1.2. 【補足】古い端末ではDevice Personalization Services
Android 10以前の端末や一部のメーカー製スマホでは、「Device Personalization Services」という名前で同様の機能が提供されています2。
設定アプリの「プライバシー」セクションに「デバイスのカスタマイズサービス」という項目があれば、それをオフにすることで予測機能を無効化できます。
2. まとめ:知ることで選択できる
今回の調査で分かったことを整理します。
Androidの共有メニューに表示される「最近の連絡先」は、各アプリが提供する候補とAndroidの予測機能が組み合わさったものです。連絡先アプリとは直接関係ありません。
完全にオフにする公式の方法はありませんが、Android System Intelligenceの使用状況アクセスを制限し、各アプリの権限を調整することで、表示を大幅に減らすことは可能です。
重要なのは、この仕組みを知っておくことです。知らずに使っていると、意図せずプライバシーに関わる情報が画面に表示されるかもしれません。一方で、仕組みを理解していれば、自分に合った設定を選べます。
私の場合、完全にはオフにせず、予測機能だけを制限する方法を選びました。これで利便性を保ちつつ、表示される候補を必要最小限に抑えられています。
あなたのスマホでも、一度設定を確認してみてはいかがでしょうか。
- Direct ShareはAndroid 6.0(API level 23)で導入され、Android 11以降はSharing Shortcuts APIに置き換えられました – Provide Direct Share targets | Android Developers
- Android 10ではSharing Shortcuts APIが導入され、Direct Shareの仕組みが大幅に改善されました。共有メニューの読み込み速度が劇的に向上し、30msで50%のユーザーが完全に読み込まれた状態を見られるようになりました – Google explains how much faster the Sharesheet is in Android 10 | Android Police