如何以编程方式更改密码?

 du-qhy 发布于 2022-12-25 16:29

我正在尝试创建一个可以更改设备密码的Android应用程序.我阅读了有关设备管理应用程序的信息, 我尝试运行此示例,这是我的主要活动代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    final Activity context = this;
    final String new_pass = ((EditText)findViewById(R.id.editext)).getText().toString();
    ((Button)findViewById(R.id.button)).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            DevicePolicyManager devicePolicyManager =
                    (DevicePolicyManager)context.getSystemService(context.DEVICE_POLICY_SERVICE);
            ComponentName demoDeviceAdmin = new ComponentName(context, MainActivity.class);

            devicePolicyManager.setPasswordQuality(
                    demoDeviceAdmin,DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED);
            devicePolicyManager.setPasswordMinimumLength(demoDeviceAdmin, 5);

            boolean result = devicePolicyManager.resetPassword("123456",
                    DevicePolicyManager.RESET_PASSWORD_REQUIRE_ENTRY);

            Toast.makeText(context,
                    "button_lock_password_device..."+result,
                    Toast.LENGTH_LONG).show();
        }
    });
}

我收到了这个错误:

08-26 22:36:51.280  15249-15249/co.rishe.secretpolice.app E/AndroidRuntime? FATAL EXCEPTION: main
java.lang.SecurityException: No active admin ComponentInfo{com.example.secretpolice.app/com.example.secretpolice.app.MainActivity}
        at android.os.Parcel.readException(Parcel.java:1425)
        at android.os.Parcel.readException(Parcel.java:1379)
        at android.app.admin.IDevicePolicyManager$Stub$Proxy.setPasswordQuality(IDevicePolicyManager.java:1359)
        at android.app.admin.DevicePolicyManager.setPasswordQuality(DevicePolicyManager.java:323)
        at co.rishe.secretpolice.app.MainActivity$1.onClick(MainActivity.java:32)
        at android.view.View.performClick(View.java:4211)
        at android.view.View$PerformClick.run(View.java:17267)
        at android.os.Handler.handleCallback(Handler.java:615)
        at android.os.Handler.dispatchMessage(Handler.java:92)
        at android.os.Looper.loop(Looper.java:137)
        at android.app.ActivityThread.main(ActivityThread.java:4898)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:511)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1006)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773)
        at dalvik.system.NativeStart.main(Native Method)

任何人都可以帮助我如何解决它?

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有