【发布时间】:2015-12-09 09:23:31
【问题描述】:
我遇到了一个非常令人困惑的问题。
我有一个应注册为设备管理员的应用。我遵循了几个在线教程,解释了如何实现这一点。当我使用 Eclipse 时它工作得很好,但是自从我在安装应用程序时切换到 Android Studio 后,在运行我的应用程序时,我没有得到预期的“启用设备管理”对话框。如果我在电话设置中查看电话管理员,它将显示我的应用程序,但不会以管理员身份进行检查。以下是适用的代码部分。任何见解都会很棒!
androidmanifest.xml
<receiver android:name="com.foo.receivers.AdminReceiver"
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>
我的接收类:
public class AdminReceiver extends DeviceAdminReceiver
{
@Override
public void onEnabled(Context context, Intent intent) {
//Some Code Here
}
@Override
public CharSequence onDisableRequested(Context context, Intent intent)
{
//Some Code Here
}
@Override
public void onDisabled(Context context, Intent intent)
{
}
@Override
public void onPasswordChanged(Context context, Intent intent)
{
//Some Code here
}
@Override
public void onPasswordFailed(Context context, Intent intent)
{
//Some Code Here
}
@Override
public void onPasswordSucceeded(Context context, Intent intent)
{
//Some Code Here
}
}
我的班级实际上启用了设备管理:
public class DeviceManager
{
private DevicePolicyManager deviceManger;
private ActivityManager activityManager;
private ComponentName compName;
public DeviceManager(Context context)
{
deviceManger = DevicePolicyManager)context.getSystemService(Context.DEVICE_POLICY_SERVICE);
activityManager = (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE);
compName = new ComponentName(context, MyAdmin.class);
}
public void registerAdmin(Activity activity)
{
Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN,compName);
intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, "Administrative Rights need to be granted to DriveLock to enable phone locking.");
activity.startActivityForResult(intent,0);
}
}
类的示例调用:
DeviceManager manager = new DeviceManager(context);
manager.registerAdmin(myActivity);
我真的很困惑为什么我没有看到“设备管理”对话框。 5美元给解决它的人!哈哈。提前致谢。
【问题讨论】:
标签: java android device-admin