web-dev-qa-db-ja.com

キャプチャ/記録画面から他のアプリケーションを防ぐ

基本的に私は欲しいVIDEO PIRACY PROTECTION

アプリケーションにビデオストリーミングがあり、他のアプリケーションからビデオストリーミングを保護したい。他のアプリケーションでは、ビデオの再生中に画面をキャプチャできません。どのように私はこれをどのように達成できるかを提案します。事前に感謝します。

17
Ajay

次のようにアクティビティにFLAG_SECUREを追加すると、画面キャプチャ機能を保護できます

  getWindow().setFlags(LayoutParams.FLAG_SECURE, LayoutParams.FLAG_SECURE); 

チェック this というリンク

画面のキャプチャと共有

Android 5.0では、新しいAndroid.media.projection APIを使用して、アプリに画面キャプチャ機能と画面共有機能を追加できます。この機能は、たとえば、ビデオ会議アプリで画面共有を有効にする場合に便利です。

新しいcreateVirtualDisplay()メソッドを使用すると、アプリはメイン画面(デフォルトのディスプレイ)のコンテンツをSurfaceオブジェクトにキャプチャし、それをアプリがネットワーク経由で送信できます。 APIは非セキュアな画面コンテンツのキャプチャのみを許可し、システムオーディオは許可しません。画面キャプチャを開始するには、アプリはまず、createScreenCaptureIntent()メソッドで取得したインテントを使用して画面キャプチャダイアログを起動することにより、ユーザーの許可をリクエストする必要があります。

this link のドキュメントにも、

ウィンドウフラグ:ウィンドウのコンテンツを安全なものとして扱い、スクリーンショットに表示されないようにするか、安全でないディスプレイで表示されないようにします。

上記のソリューションは確実にアプリケーションがあなたのアプリのビデオをキャプチャするのを防ぎます

40
silwar
_  getWindow().setFlags(LayoutParams.FLAG_SECURE, LayoutParams.FLAG_SECURE);
_

上に書くsetContenView();

スナップショットのキャプチャのみを防止します。また、ビデオのキャプチャを防ぎます。ただし、デバイス固有のビデオをキャプチャする場合。

5
arshad shaikh

これをActivityに追加してみてください。

getWindow().setFlags(LayoutParams.FLAG_SECURE, LayoutParams.FLAG_SECURE); 
1
siriscac