簡體   English   中英

Android以編程方式設置/更改/刪除鎖定屏幕PIN,密碼或解鎖圖案

[英]Android to set/change/remove Lock Screen PIN, Password or Unlock Pattern programatically

我正在使用密碼保護Android設備的android項目。 為此,我必須以編程方式設置密碼。 使用了參考用戶設備管理api和此示例,但它引發錯誤(如下):

08-18 02:12:26.888: W/dalvikvm(2600): threadid=1: thread exiting with uncaught       exception (group=0x40a401f8)
08-18 02:12:26.888: E/AndroidRuntime(2600): FATAL EXCEPTION: main
08-18 02:12:26.888: E/AndroidRuntime(2600): java.lang.RuntimeException: Unable to start activity ComponentInfo{dilli.passwordtest/dilli.passwordtest.MainActivity}: java.lang.SecurityException: No active admin ComponentInfo{dilli.passwordtest/dilli.passwordtest.MainActivity}
08-18 02:12:26.888: E/AndroidRuntime(2600):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956)
08-18 02:12:26.888: E/AndroidRuntime(2600):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
08-18 02:12:26.888: E/AndroidRuntime(2600):     at android.app.ActivityThread.access$600(ActivityThread.java:123)
08-18 02:12:26.888: E/AndroidRuntime(2600):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
08-18 02:12:26.888: E/AndroidRuntime(2600):     at android.os.Handler.dispatchMessage(Handler.java:99)
08-18 02:12:26.888: E/AndroidRuntime(2600):     at android.os.Looper.loop(Looper.java:137)
08-18 02:12:26.888: E/AndroidRuntime(2600):     at android.app.ActivityThread.main(ActivityThread.java:4429)
08-18 02:12:26.888: E/AndroidRuntime(2600):     at java.lang.reflect.Method.invokeNative(Native Method)
08-18 02:12:26.888: E/AndroidRuntime(2600):     at java.lang.reflect.Method.invoke(Method.java:511)
08-18 02:12:26.888: E/AndroidRuntime(2600):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)
08-18 02:12:26.888: E/AndroidRuntime(2600):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562)
08-18 02:12:26.888: E/AndroidRuntime(2600):     at dalvik.system.NativeStart.main(Native Method)
08-18 02:12:26.888: E/AndroidRuntime(2600): Caused by: java.lang.SecurityException: No active admin ComponentInfo{dilli.passwordtest/dilli.passwordtest.MainActivity}
08-18 02:12:26.888: E/AndroidRuntime(2600):     at android.os.Parcel.readException(Parcel.java:1327)
08-18 02:12:26.888: E/AndroidRuntime(2600):     at android.os.Parcel.readException(Parcel.java:1281)
08-18 02:12:26.888: E/AndroidRuntime(2600):     at android.app.admin.IDevicePolicyManager$Stub$Proxy.setPasswordQuality(IDevicePolicyManager.java:761)
08-18 02:12:26.888: E/AndroidRuntime(2600):     at android.app.admin.DevicePolicyManager.setPasswordQuality(DevicePolicyManager.java:292)
08-18 02:12:26.888: E/AndroidRuntime(2600):     at dilli.passwordtest.MainActivity.onCreate(MainActivity.java:24)
08-18 02:12:26.888: E/AndroidRuntime(2600):     at android.app.Activity.performCreate(Activity.java:4465)
08-18 02:12:26.888: E/AndroidRuntime(2600):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
08-18 02:12:26.888: E/AndroidRuntime(2600):     at     android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
08-18 02:12:26.888: E/AndroidRuntime(2600):     ... 11 more

我對此沒有明確的說明。 所以,可以請一些朋友幫幫我。 提前致謝。

Caused by: java.lang.SecurityException: No active admin ComponentInfo{dilli.passwordtest/dilli.passwordtest.MainActivity}

為了修改設備管理員設置,您的應用必須由用戶批准為設備管理員。 您需要使用適當的策略實施DeviceAdminReceiver ,並且用戶必須進入“設置”中的安全屏幕,並將您的應用程序激活為設備管理應用程序。

SDK提供了有關如何在android上使用設備管理器的完整示例:

<SDK_PATH>/samples/android-21/legacy/ApiDemos/src/com/example/android/apis/app/DeviceAdminSample.java

該示例在其他API中也可用。

PS:別忘了查看清單:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM