2016-10-08 5 views
0

私のアプリの1つがロック画面そのものに関する情報を表示します。そのロック画面の上にレイヤー。私はそれを隠すことができるようにカメラが開かれたときを知る必要があります。フェイスブックのメッセンジャーのようなものです。私はロック画面で想像浮遊している。私はちょうど私が私の想像を隠すことができ、カメラが閉じられたときに再び表示することができるように、アプリケーションがカメラを開いた時を知るためにコールバックが必要です。アンドロイド - カメラを開いたり閉じたりしたときにコールバックを取得する方法

public boolean isCameraUsebyApp() { 
Camera camera = null; 
try { 
    camera = Camera.open(); 
} catch (RuntimeException e) { 
    return true; 
} finally { 
    if (camera != null) camera.release(); 
} 
return false; 

}

問題は、これはリアルタイムではないです。

はSOに私はこのコードを発見しました。私はこれを呼び出さなければならない。私はむしろ、カメラが開いているときにシステムコールバックを取得するので、私はすでに表示される可能性のあるものを隠すことができます。

+0

私はあなたが 'CameraManager'(私の今削除された答え)で述べたコールバックを忘れていました。これはCamera2 APIのみであり、API Level 21+でのみ利用可能であることに注意してください。また、プロセスの実行中にのみ機能します。そして、率直に言って、私はこのコールバックが存在するのは不幸です。 – CommonsWare

答えて

1

カメライベントを開始/終了するためのシステムブロードキャストはありません。ただし、アンドロイドUsageStatsManagerを使用して、バックグラウンドサービスでフォアグラウンドアプリケーションをチェックし、カメラアプリケーションが開かれたときにアクションを起こすことができます。これが、ほとんどのAppLockアプリケーションがそれを検出する方法です。

+0

カメラアプリは何ですか?パッケージ名を指定する必要がありますか? – j2emanue

+0

Camera Image Pickerのインテントを作成し、それを解決してパッケージ名を取得できます。 – jimmy0251

関連する問題