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所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)