2010-12-15 3 views
0

私はロックボタンをクリックすると電話をロックしたいと思います。誰も簡単なcode.iで助けてください。API_Demosのコードの一部で試しましたが、何らかのエラーが表示されます。どうすればアンドロイドをプログラム的にロックするのですか

+0

何のエラー?ここにそれらを教えてください! –

+0

エラー(361):java.lang.SecurityException:ポリシー#3のためにuid 10045が所有しているアクティブな管理者がいません WARN/DeviceAdminAdd(128):デバイスポリシーを取得できませんComponentInfo {com.lock ..} – adithi

答えて

1

あなたはそうのようなロック画面のクラスを使用してプログラムAndroidの画面をロックすることができます

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

は、ロック画面クラスhereを見てみましょう。

+0

あなたは言及しましたが、結果は無くエラーもありません。ログcatメッセージは次のとおりです 12-16 10:20:31.687:DEBUG/AndroidRuntime(332):VMをシャットダウン 12-16 10:20: 31.697:DEBUG/dalvikvm(332):デバッガが切り離されました。オブジェクトレジストリに1つのエントリがありました 12-16 10:20:31.817:INFO/AndroidRuntime(332):注:スレッド 'Binder Thread#3'のアタッチに失敗しました 12-16 10:20:37.376:DEBUG/dalvikvm(125) :GC_EXPLICITは、2660オブジェクト/ 175544バイトを101msで解放しました。 12-16 10:20:53.036:DEBUG/SntpClient(59):要求時間に失敗しました:java.net.SocketException:プロトコルでサポートされていないアドレスファミリ – adithi

+1

あなたと私はセキュリティに関する警告を受けましたので、私はこの許可を最も細かいファイルで与えました。 今は私に何の例外も与えず、ロックを見せてもいません。あなたは何が問題なのか知っていますか? – sajjoo

+0

@sajjoo私は同じ問題を抱えていますが、解決策は見つかりましたか? – Bhupinder

1

コード:

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

は、画面をロックしません。これは、キーガードロックを有効にするだけです。

lock.disableKeyguard(); 

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

0

@Bhupinder次のリンクを確認してください。

http://musicm122.blogspot.in/2011/10/locking-and-unlocking-android-phone.html

//Get the window from the context 

    WindowManager wm = Context.getSystemService(Context.WINDOW_SERVICE); 

    //Unlock 

    //http://developer.android.com/reference/android/app/Activity.html#getWindow() 

    Window window = getWindow(); 

    window.addFlags(wm.LayoutParams.FLAG_DISMISS_KEYGUARD); 



    //Lock device 

    DevicePolicyManager mDPM; 

    mDPM = (DevicePolicyManager)getSystemService(Context.DEVICE_POLICY_SERVICE); 
+0

[リンクのみの回答](http://meta.stackoverflow.com/tags/link-only-answers/info)はお勧めできませんので、SOの回答は解決策の検索の終点でなければなりません。時間の経過とともに古くなる傾向がある参照の途中降機)。リンクを参考にして、ここにスタンドアロンの概要を追加することを検討してください。 – kleopatra

関連する問題