0

私は多かれ少なかれ、これらすべての概念を部分的に理解して実装することができましたが、何をどこにどのように組み合わせるかについて、どういうわけか完全に混乱しています.

要するに、これは私がルート化されていないAndroid携帯で達成しようとしているものです

  1. SMS ブロードキャスト レシーバーに、シークレット コードを含む着信 SMS をリッスンさせる
  2. SMS にキーワード ロックがある場合は、画面をロックします。

BroadCastReceivers と DeviceAdminRecivers はどのように連携しますか?

例えば。SMS を傍受するための作業コードがあります。ダミーの (空の) lockScreen() 関数を呼び出す switch ケース。画面をロックできるように、DeviceAdminReceiver のコードをどこに配置する必要がありますか (HOME およびその他のメニュー ボタンが無効になっているパスワード ボックスを備えた新しいアクティビティ)。

したがって、基本的には BroadcastReceiver -> Device Admin -> Activity からです。

私を助けてください。

4

3 に答える 3

1

最も簡単な方法は、カスタム ホーム画面を作成し、以下に示す機能を追加して、カスタム ロック画面のように見せることです。

  1. カスタム LockScreen アクティビティから通知/ステータス バーを削除します
  2. LockScreen アクティビティが表示されているときに HOME/MENU ボタンのクリックをキャッチして無効にする
  3. 秘密の「LOCK PHONE」SMS を受信したときに、SMS ブロードキャスト レシーバーがカスタム LockScreen アクティビティを呼び出すようにします。
  4. 着信システムのデフォルト画面が lockScreenActivity をバックグラウンドにプッシュしないように、PhoneBroadstReceiver を使用して LockScreen をある程度の遅延 (100ms) で再表示させます。

PS : パスワードが設定されている場合は、DeviceAdmin を使用して電話をロックし、システムのデフォルトのロック画面を表示できます。

于 2012-03-27T03:26:07.617 に答える
0

コード:

KeyguardManager mgr = (KeyguardManager)getSystemService(Activity.KEYGUARD_SERVICE); 
KeyguardLock lock = mgr.newKeyguardLock(KEYGUARD_SERVICE); 
lock.reenableKeyguard();

画面はロックされません。キーガードロックを有効にするだけです。で走るとき

lock.disableKeyguard();

デバイスのロックボタンを押すと、キーガードはロックされません。プログラムで画面をロックするには、Device Adminを参照し、locknow()メソッドを使用してすぐにロックする必要があります。

于 2012-06-27T07:33:10.710 に答える
0

私の知る限り、アプリ内からホームボタンを無効にすることは不可能であるため、ルート化されていない電話でカスタムロック画面を作成できるとは思いません.

これらのロック画面アプリについては知りませんでしたが、さらに調査すると、次のような方法があるようです。

1) 必要な SMS インテント ブロードキャストにアプリを登録します。

2) ブロードキャストを受信したら、lock キーワードを確認します。

3) lock キーワードが存在する場合は、次を使用してプログラムで電話をロックします。

private void lockScreen(){
    KeyguardManager mgr = (KeyguardManager)getSystemService(Activity.KEYGUARD_SERVICE); 
    KeyguardLock lock = mgr.newKeyguardLock(KEYGUARD_SERVICE); 
    lock.reenableKeyguard();
}

もちろん、これはカスタム ロック画面を使用しませんが、必要ない場合もあります。独自のロック画面が必要な場合は、このガイドに従ってください

http://developer.android.com/guide/topics/admin/device-admin.html

を作成します。

于 2012-03-20T03:53:27.867 に答える