45

Androidフォンをリモートでロックするアプリケーションを作成しました。つまり、サーバーから特別なコードが送信され、アプリケーションは特別なコードに基づいて電話をロックします。これは私が使用しているコードです。

if (!mDPM.isAdminActive(mDeviceAdminSample)) {
        // try to become active – must happen here in this activity, to get result
        Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
        intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN,mDeviceAdminSample);
        intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,"Admin is added to do security operation.");
        startActivityForResult(intent, 0);
        } else {
        // Already is a device administrator, can do security operations now.
        mDPM.lockNow();
        }

上記のコードは機能しており、電話をロックしています。

ソフトキーパッドからパスワードを入力して、電話のロックを解除できます。コードでロックを解除する方法はありますか?

私の質問は、コードを使用して電話のロックを解除する方法です。(このロック解除は、ロックについて説明した方法でリモートで行う必要があります)

4

8 に答える 8

6

Samsung や HTC のように独自のデバイスを作成しない限り、組み込みの画面ロックを無効にすることはできないと思います。ただし、顧客に独自の画面ロックのようなアプリを使用してもらうことで、目的を達成できる可能性があります。

于 2012-12-13T23:51:31.293 に答える
5

リモートでのロック解除の目標は達成できないと思います。

Android の設定方法は、多くのアプリがデバイス管理者権限を持つ可能性があり、デバイス管理者はロック コマンドを発行できますが、ロック解除はユーザーが行う必要があります。

これを簡単にするために 1 つのことを提案できます。アプリがキーロック パスワードを削除しようとすると、ユーザーは画面上で指をスライドさせるだけで、コードなしでデバイスを使用できるようになります。

あなたのアプリが唯一のデバイス管理者ではない場合、私が提案したことには問題があります。その場合、他の管理者アプリが最小パスワード長 (またはその他のパスワード制限) を設定して、アプリが画面ロック パスワードをクリアできないようにする可能性があります。

画面ロックのパスワードを忘れたユーザーを助けることが目標の場合、サーバーは新しいパスワードを発明し、新しいパスワードが何であるかをユーザーに通知し、新しいパスワードをアプリに送信し、アプリがパスワード。その後、ユーザーは電話機のロックを解除できます。心配する必要はありません。思ったほど複雑ではありません。

于 2012-12-10T04:40:43.683 に答える
4

申し訳ありませんが、コードから電話のロックを解除する方法はありません。それを行う方法を見つけた場合-動作する保証はありません。そのため、リモートでロックを解除したり、カスタム ロック画面を作成したりする方法はありません。

于 2012-12-12T21:29:10.977 に答える
3

mDPM.resetPassword("", 0) を使用する必要があります

http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#resetPassword(java.lang.String , int)

パスワード文字列を「」に設定すると、現在のパスワードが空の値に置き換えられ、画面ロックが消えます。

于 2013-06-04T09:29:16.413 に答える
2

これを試して

KeyguardManager manager = (KeyguardManager)context.getSystemService(KEYGUARD_SERVICE);
kl = manager.newKeyguardLock("my-remote-app");
kl.disableKeyguard();

//終了時にキーガードを再度有効にするため (必要な場合)

onDestroy() {
kl.reenableKeyguard();
}

これは<= ICSで機能します。これは非推奨の API です。同様の効果を得るには、WindowManager のフラグを使用することをお勧めします。WindowManger を使用して同様の効果を生成できませんでしたが。

お役に立てれば、

于 2012-08-14T12:29:08.247 に答える
1

私の知る限り、パスワードで保護された電話のロックをプログラムで解除することはできません。

于 2012-12-13T12:31:03.600 に答える
1

私は Android 開発者ではありませんが、次の点に注意してください。

これを見ると、「セキュアロック」モードであっても、適切なパーミッションがあれば、WindowManager にキーガードを解除するように要求できるようです。

于 2012-08-14T12:19:39.827 に答える
0

1 つの解決策は、「カスタム ロック画面」を作成することです。確かに、これは最も簡単な方法ではありませんが、自分のロック画面でやりたいことがすべてできるのでうまくいくでしょう。その解決策を検討している場合は、お気軽に私に連絡してください。役立つリンクをいくつか提供します。乾杯!

于 2012-12-14T09:24:57.267 に答える