Is there anyway to blur out or add filter to the screenshot that the users capture while inside my app? I know we can completely block the users from capturing the screenshot but I only want to blur it.
1 に答える
ユーザーがスクリーンショットをキャプチャするのを完全にブロックできることはわかっていますが、ぼかしたいだけです。
私の知る限り、スクリーンショットがキャプチャされたときにトリガーされるブロードキャストはありません。したがって、スクリーンショットがキャプチャされたことを検出して、フィルターを適用したり、ぼかしたりできる可能性があるかどうかはわかりません。
ソース: http://developer.android.com/reference/android/content/Intent.html#constants
アプリはスクリーンショットが撮影されたことを検出できないため、その機能を (アプリ内でのみ) 完全にブロックすることをお勧めします。CommonsWareのブログには、スクリーンショットがアプリ内でキャプチャされるのをブロックする方法があります。詳細はこちら: http://commonsware.com/blog/2012/01/16/secure-against-screenshots.html
そのブログからの抜粋:
これを行うには、次を使用しますFLAG_SECURE
。
public class FlagSecureTestActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setFlags(LayoutParams.FLAG_SECURE,
LayoutParams.FLAG_SECURE);
setContentView(R.layout.main);
}
}
通常、ユーザーがスクリーンショットを撮ると、成功を示す通知が発生し、ギャラリー アプリでスクリーンショットへのアクセスが提供されます。FLAG_SECURE を配置すると、通知は「スクリーンショットをキャプチャできませんでした」になります。