2013-09-08 7 views
13

セキュリティ上の理由から、私のアプリのユーザーによる画面キャプチャを防止する必要があります。表示されるコンテンツは機密情報であり、デバイスにコピーしないでください。私はone answer on Stack Overflow, but for Androidを見た。iOSアプリケーションで画面キャプチャを防止する

iOSでは何とか画面キャプチャを防止できますか?

少数のボタンをクリックしてスクリーンショットをギャラリーに取り込むのは、ユーザーにとって非常に便利な機能ですが、それを防ぐための制限があります。すべてのポインタ?

+3

これはOSレベルのアクションなので、jailbrokenデバイスで実行している場合を除き、可能ではないと思います。私は間違っている可能性があります。 – mash

+2

jailbrokenされていないデバイスではこれを防ぐことはできませんが、それを検出できると思います。http:// stackoverflow。com/questions/13484516/ios-detection-of-screenshot –

答えて

10

いいえスクリーンショットを完全に撮影できないようにする方法です。 Snapchatの処理を行うことができます。これは、ユーザーが表示している情報を表示するために画面に触れる必要があるためです。これは、システムのscreenshotイベントが中断するためです。これは完璧な方法ではなく、ユーザーが100%時間をかけてスクリーンショットを撮ることを妨げることはできません。

詳細:iOS Detection of Screenshot?

+0

私はSnapchatを使用していないので、今テストすることはできませんが、iPhoneをMacに接続してXcodeを通してスクリーンショットを撮るとどうなりますか? (画面上の指がすべて)。このような画面キャプチャを_detect_(とはいえ、_prevent_)するプログラム的な方法はないと確信しています。 –

9

他の問題はwetwareの画面キャプチャである - 例えば、カメラまたは他の携帯電話のような別の装置との画面をキャプチャした人です。あなたがアプリでそれを防ぐ場合でも、誰かが画面の写真を撮るのを防ぐことは不可能です

+0

これは非常に興味深い点です。うまくいけば、本質的なデータの劣化は、ほとんどのアプリケーション(DRMのオーディオやビデオなど)で十分な抑止力ですが、再びあなたはビデオテープ映画館のスクリーンを持っている人々を持っています... –

+0

それはまた問題です –

+0

ポイント+1。 – Suryakant

6

可能な回避策の1つはYovoです。私はちょうど私の心を爆破したこのデモを見ました!

http://vimeo.com/108244650

それはあいまいなスクリーンショットに非常に巧妙な方法だ、とさえ一部JimBobBennetに育て「wetware」ケースを処理します。

画像の上にぼかしマスクを設定します(柵パターンはアプリで使用されていますが、どのパターンでも可能です)。それを高速で移動します。ユーザーがスクリーンショットを撮ると、1つのフレームの静止画像が得られますが、それ自体が不明瞭です。

私たちの頭脳は、動いているファンの羽根をどのように見ることができるのと同様に、動きのあるマスクの後ろの画像を一緒にまとめることができるという事実を利用しています。

イメージをキャプチャするには、ビデオを録画する必要がありますが、これはかなり面倒です。ここ

唯一の問題は、IPであるかもしれない - Yovoは300+ patentsを持っていると主張して...

+1

そのスクリーンショットの人々は私にかなりわかりました。これはわずかなプライバシーの幻想です。 – jeffjv

+0

ええ、有効性はユースケースによって異なります。ユーザーがコンテンツを盗むのを防ぐためには、これはタスクを面倒で面倒なものにしてしまいます。これは十分な抑止力となります。 –

2

私はあなたが何をすぐにできればUIApplicationUserDidTakeScreenshotNotification

NSOperationQueue *mainQueue = [NSOperationQueue mainQueue]; 
[[NSNotificationCenter defaultCenter] addObserverForName:UIApplicationUserDidTakeScreenshotNotification 
                object:nil 
                queue:mainQueue 
               usingBlock:^(NSNotification *note) { 
                // executes after screenshot 
                NSLog(@"Screenshot Detection : %@", note); 
                UIAlertView *screenshotAlert = [[UIAlertView alloc] initWithTitle:@"Screenshot Detected" message:@"Oh Oh no screenshot bruhh" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; 
                [screenshotAlert show]; 
               }]; 

を使用してスクリーンショットイベントを監視できることを聞きましたスクリーンショットファイルを作成したときに削除しますか?

+1

ファイルをどのように削除しますか? AFAIKはできません。 – BadmintonCat

+0

Imはiosの開発にはあまりよく慣れていませんが、ユーザーがギャラリーにアクセスできる場合はアンドロイドで作成し、そこからファイルを削除することもできます。だから私はあなたがすぐに撮影されたスクリーンショットを削除することができると思った。 – lxknvlk

2

これはしばらくお待ちしておりますが、私はScreenShieldKitというメッセージングアプリConfideで使用されている特許出願中の技術です。それはユーザーがスクリーンショットを撮ることになりますが、コンテンツは最終画像では空白です。彼らは最近iOS版をリリースしました。

関連する問題