gpt4 book ai didi

android - devicePolicyManager.lockNow() 不适用于摩托罗拉平板电脑

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:21:12 26 4
gpt4 key购买 nike

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

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

我用谷歌搜索,但没有得到任何解决方案。任何想法......?

最佳答案

出现这个问题的可能原因

1) 我认为您的 AndroidManifest.xml 中接收者的元数据 有一些问题

2) 您没有将正确的类(用 DeviceAdminReceiver 扩展)添加到 adminComponent 或 android:receiver 的 name 属性。

在这上面花了很多时间后,我创建了代码。


主要 Activity 的代码

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() 不适用于摩托罗拉平板电脑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8987847/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com