我試圖設置鎖定任務包,但IsAdminActive
返回false。無法啓用管理員組件
要設置設備所有者和活動管理員,我使用了adb shell中的命令dpm set-device-owner PinningTest.PinningTest/.AdminReceiverTest
。這成功完成。
我的MainActivity:
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
DevicePolicyManager devicePolicyManager = (DevicePolicyManager)GetSystemService(Context.DevicePolicyService);
ComponentName testDeviceAdmin = new ComponentName(this, Java.Lang.Class.FromType(typeof(AdminReceiverTest)).Name);
if (devicePolicyManager.IsAdminActive(testDeviceAdmin))
{
devicePolicyManager.SetLockTaskPackages(testDeviceAdmin, new string[] { PackageName });
}
}
我AndroidManifest:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="PinningTest.PinningTest"
android:versionCode="1" android:versionName="1.0"
android:installLocation="auto">
<uses-sdk android:minSdkVersion="21" />
<uses-permission android:name="android.permission.BIND_DEVICE_ADMIN" />
<application android:label="PinningTest">
<receiver android:name=".AdminReceiverTest"
android:label="@string/ApplicationName"
android:description="@string/ApplicationName"
android:permission="android.permission.BIND_DEVICE_ADMIN">
<meta-data android:name="android.app.device_admin" android:resource="@xml/device_admin" />
<intent-filter>
<action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
</intent-filter>
</receiver>
</application>
</manifest>
AdminReceiverTest.cs:
namespace PinningTest
{
class AdminReceiverTest : DeviceAdminReceiver
{
}
}
我下面的教程here和也看了各種別人,而是我無法找到完整的Xamarin示例。
任何幫助表示讚賞。
非常感謝。
假設你的設備沒有根,並且沒有用戶賬戶被分配(如果你必須重新設置),在'dpm'命令後,'/ data/system/device_owner.xml'被更新了嗎?另外哪個設備(?),因爲不同的製造商改變了ASOP,並且他們有特殊的燙髮設置,例如Samsung – SushiHangover
正在運行'devicePolicyManager.IsDeviceOwnerApp(PackageName)'確實會返回true,但如果我嘗試打開文件。我可以看到它在我運行set-device-owner之後被創建,所以我猜測它是正確設置的。它是5.0上的聯想tab3。 –