android–devicePolicyManager.lockNow()不适用于Motorola Tablets

android–devicePolicyManager.lockNow()不适用于Motorola Tablets,第1张

概述publicfinalstaticvoidlockDevice(){try{if(devicePolicyManager.isAdminActive(adminComponent)){devicePolicyManager.lockNow();}}catch(finalExceptionex)

public final static voID lockDevice()    {        try        {            if (devicePolicyManager.isadminActive(adminComponent))            {                devicePolicyManager.lockNow();            }        }        catch (final Exception ex)        {            ...        }    }

上面的代码不会抛出任何异常,也不会锁定motorola xoom平板电脑的屏幕. (Homeycomb和Icecream SanDWitch)相同的代码在其他Homeycomb和ICS平板电脑上完美运行.

我用Google搜索,但没有得到任何解决方案.有任何想法吗…..?

解决方法:

这个问题的可能原因

1)我认为AndroIDManifest.xml中接收者的元数据存在一些问题

2)您没有将正确的类(使用DeviceadminReceiver扩展)添加到adminComponent或者接收者的androID:name属性.

花了很多时间在这之后我创建了代码.

主要活动代码

public class LockerTest extends Activity {    protected static final int REQUEST_ENABLE = 0;    DevicePolicyManager devicePolicyManager;    Componentname adminComponent;    @OverrIDe    protected voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentVIEw(R.layout.main);        button button = (button) findVIEwByID(R.ID.btn);        button.setonClickListener(btnListener);    }    button.OnClickListener btnListener = new button.OnClickListener() {        public voID onClick(VIEw v) {            adminComponent = new Componentname(LockerTest.this, Darclass.class);            devicePolicyManager = (DevicePolicyManager) getSystemService(Context.DEVICE_POliCY_SERVICE);            if (!devicePolicyManager.isadminActive(adminComponent)) {                Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_admin);                intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_admin, adminComponent);                startActivityForResult(intent, REQUEST_ENABLE);            } else {                devicePolicyManager.lockNow();            }        }    };    @OverrIDe    protected voID onActivityResult(int requestCode, int resultCode, Intent data) {        if (REQUEST_ENABLE == requestCode) {            super.onActivityResult(requestCode, resultCode, data);        }    }}

创建一个新类 – Darclass – 代码

import androID.app.admin.DeviceadminReceiver;public class Darclass extends DeviceadminReceiver{}

 在’res’中创建一个’xml’文件夹.然后在’xml’文件夹中创建my_admin.xml文件. my_admin.xml的代码.注意在< / activity>之后添加此接收器在< / application>之前

<device-admin xmlns:androID="http://schemas.androID.com/apk/res/androID">    <uses-policIEs>        <limit-password />        <watch-login />        <reset-password />        <force-lock />        <wipe-data />    </uses-policIEs></device-admin>

最后将下面给出的接收器添加到AndroIDManifest.xml中

<receiver            androID:name=".Darclass"            androID:permission="androID.permission.BIND_DEVICE_admin" >            <Meta-data                androID:name="androID.app.device_admin"                androID:resource="@xml/my_admin" />            <intent-filter>                <action androID:name="androID.app.action.DEVICE_admin_ENABLED" />            </intent-filter>        </receiver>

它应该适用于您的设备.

总结

以上是内存溢出为你收集整理的android – devicePolicyManager.lockNow()不适用于Motorola Tablets全部内容,希望文章能够帮你解决android – devicePolicyManager.lockNow()不适用于Motorola Tablets所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1101298.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存