2017-04-07 7 views
9

私が取り組んでいるアプリは、ホームボタンを押してアプリを停止するときに、「最近の仕事」画面に表示してはいけないいくつかの機密情報を表示します。Android:最近のアプリをカスタマイズするサムネイル(デフォルトではスクリーンショット)

私はスクリーンショットの機密データをぼかしたり、代わりにアプリのロゴを表示したいと考えています。

私は以下のアプローチを認識していますが、彼らは私の要件に適合しない:manifiestにactvitieのandroid:excludeFromRecents trueに設定

  • は、最近のタスクには全く示されているからアプリを防ぎます。これにより、ユーザーエクスペリエンスが中断されます。
  • FLAG_SECUREを使用すると、recentsタスク画面に空白のカードが表示されます。 (How do I prevent Android taking a screenshot when my app goes to the background?)私は空白の画面が嫌いです。ただし、回避策がない場合は、このソリューションに固執します。
  • オーバーライドonCreateThumbnail
  • は理想的なソリューションのように思えるけど、それは現在のOSで起動されていないと、残念ながら、動作しません:(( https://code.google.com/p/android/issues/detail?id=29370

そして、私が試してみたいくつかの回避策が、それのdidnがあります期待して」トンの仕事:それはスクリーンショットだよう

    はでアプリのロゴを示し、新たな活動を開始し
  • ではなく、実際の支援の一つを示した。しかし、新たな活動が開くのに時間がかかりすぎると、それはユーザーが中断されています。経験。
  • アクティビティのコンテンツビューをアプリのロゴの画像に設定します()。それは私にとって素晴らしい解決策のようでした。残念ながら、最近のタスク画面のスクリーンショットは、不特定の時間に取得されます。テスト中、アプリのロゴはすぐに表示され、「ホーム」を押すとアプリが終了する前に表示されますが、結果のスクリーンショットはその前にそのアクティビティが表示されます。
  • ウィジェットから機密データを削除すると(例:textView.setText(""))、今説明したスクリーンショットのタイミングと同じ問題が発生します。

リストされた回避策の代替案または解決策はありますか?

+0

機密情報は、「マイアカウント」のような孤立したアクティビティに表示されていますか? – Gapp

+0

いいえ、ほとんどのアクティビティで機密データが表示されます。 – xvlcw

答えて

0

アクティビティ全体の上にレイアウトオーバーレイを実装する方法はありますか?

デフォルトではクリックスルーですので、使用中にUXに悪影響はありません。

onPause()では、半透明でぼやけたイメージをそのレイアウトの背景として設定すると、データがその背景にスクランブルされます。 onResume()で背景を完全に透明に変更してください。 Voila。

他の種類のオーバーレイよりも速い場合があります。肯定的な副作用は、ユーザーが戻ったときに短いアニメーション効果(Javaの代わりにC++を使用する適切なライブラリを使用して)をぼかすと、見た目が涼しくてユーザーが気にしなくてもよいということです。

私はこれを試していませんが、まだ試していないものです。

0

onUserLeaveHint()またはonWindowFocusChanged()の機密テキストを削除することはできますが、これは自分で試したことはありません。

0

私はこれがBroadCastReceiverによってのみ達成できると思いますが、受信機は存在しません。そのため、最初にアンドロイドのデフォルトのスクリーンショット機能を無効にしてから、独自の機能を実装してスクリーンショットを撮ってからスクリーンショットを撮る前に、安全な情報をぼかす必要があります。

関連する問題