2025 年 3 月 27 日より、AOSP のビルドとコントリビューションには aosp-main
ではなく android-latest-release
を使用することをおすすめします。詳細については、AOSP の変更をご覧ください。
画面読み取りの制限
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
Android 9 以前では、画面バッファ キャプチャ権限(READ_FRAME_BUFFER
、CAPTURE_VIDEO_OUTPUT
、CAPTURE_SECURE_VIDEO_OUTPUT
)は、署名権限を持つアプリまたは特権アプリのいずれかに付与されていました。このため、スクリーンショットのキャプチャやデバイスの画面コンテンツの記録など、画面バッファのシームレスなキャプチャが可能でした。
Android 10 以降では、デバイスの画面コンテンツへのサイレント アクセスを防ぐため、特権アプリには動画のキャプチャ権限が付与されません。ユーザーの同意がないアクセスは制限され、署名権限を持つアプリにのみ許可されています。このようなサイレント キャプチャ機能に依存する特権アプリを実行するデバイス メーカーは、この要件の影響を受けます。
Android 10 以降では、記載済みの画面バッファ キャプチャ署名権限がない場合、アプリはユーザーの同意がなければ画面バッファをキャプチャできません。必要な権限があることを確認するには、前もって記載された署名権限がマニフェスト ファイルにあるかどうかを検索します。影響を受けるすべての特権アプリ(検索で見つかったもの)を MediaProjectionManager クラスに移行します。これにより、サードパーティ アプリが権限なしで(ただしユーザーの同意に基づいて)画面バッファをキャプチャできるようになります。このフローでは、アプリが画面のキャプチャを開始したときにそれを許可するようユーザーに求めるダイアログが表示されます。Android 10 におけるこのダイアログの新機能は次のとおりです。
- キャスト アイコンとの関連付けをよりわかりやすく表示します。
- アクセス可能なデータの機密性に関するより詳細な情報を提供します。
- 次回以降のキャプチャの開始時にユーザーがダイアログを非表示にできない(つまり、ダイアログが毎回表示される)ようにします。
このページのコンテンツやコードサンプルは、コンテンツ ライセンスに記載のライセンスに従います。Java および OpenJDK は Oracle および関連会社の商標または登録商標です。
最終更新日 2025-07-27 UTC。
[[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["必要な情報がない","missingTheInformationINeed","thumb-down"],["複雑すぎる / 手順が多すぎる","tooComplicatedTooManySteps","thumb-down"],["最新ではない","outOfDate","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["サンプル / コードに問題がある","samplesCodeIssue","thumb-down"],["その他","otherDown","thumb-down"]],["最終更新日 2025-07-27 UTC。"],[],[],null,["# Restricted screen reading\n\nIn Android 9 and lower, the screen buffer\ncapture permissions (`READ_FRAME_BUFFER`,\n`CAPTURE_VIDEO_OUTPUT`, and\n`CAPTURE_SECURE_VIDEO_OUTPUT`) were granted to apps that\nhad *either* signature or privileged permissions. This\nenabled seamless screen-buffer capturing activities, such as\ntaking screenshots, or recording a device's screen contents.\n\nStarting in Android 10, to prevent\nsilent access to a device's screen contents, video capture\npermissions aren't granted to privileged apps. Access\nwithout user consent is [restricted](https://developer.android.com/about/versions/11/privacy/permissions),\nand granted only to apps that have signature\npermissions. Device manufacturers that run privileged apps relying\non this silent capture functionality are affected by this\nrequirement.\n\nAs of Android 10 if you\ndon't have the listed screen-buffer capture signature permissions, your\napp can't capture screen buffers without user consent. To\nensure you have the permissions you need, search your manifest file\nfor the previously listed signature permissions. Migrate all affected privileged\napps (as found in your search) to the [MediaProjectionManager](https://developer.android.com/reference/android/media/projection/MediaProjectionManager)\nclass, which allows any third party app\nto capture screen buffers without permissions, but with user\nconsent. This flow displays a dialog that prompts the user to\nallow screen capturing when an app initiates it. In Android 10,\nnew features of the dialog include the following:\n\n- Provides more visible associations with the **Cast** icon.\n- Provides more information about the sensitivity of the data that can be accessed.\n- Prevents users from hiding the dialog on future initiations: the dialog shows every time."]]