2015-05-28 108 views
0

我試圖提示用戶使用設備管理員活動來啓用我的應用程序作爲設備管理員。以下是試圖從我的服務級別呼叫設備管理員活動的代碼:無法從我的服務類(Android Lollipop)啓動設備管理員活動

ComponentName deviceAdmin=new ComponentName(context,DeviceAdminReceiver.class); 
Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN); 
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, deviceAdmin); 
intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, "Make sure to accept in order to provide support for lock and wipe"); 
PendingIntent pendingIntent = PendingIntent.getActivity(context, DevicePolicyManagerLockWipeService.RESULT_ENABLE, intent, Intent.FLAG_ACTIVITY_NEW_TASK); 
pendingIntent.send(); 

Android Manifest如下;

<receiver android:name=".DeviceAdminReceiver" android:label="DeviceAdminReceiver" 
android:permission="android.permission.BIND_DEVICE_ADMIN" android:exported="true"> 
<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> 

這適用於任何4.x的android版本,但不適用於棒棒糖版本。在棒棒糖中,當我啓動我的應用程序時,它看起來像是在打開設備管理員活動,但立即停止活動動畫並關閉,而不提示用戶啓用設備管理員。但是,我的應用程序顯示在設置 - >安全 - >設備管理員窗口中,但未作爲設備管理員進行檢查。

回答

1

您可能需要刪除的android:launchMode =「singleInstance」從發送ACTION_ADD_DEVICE_ADMIN意圖在AndroidManifest.xml中

+1

ACTION_ADD_DEVICE_ADMIN意圖活動從服務類發送不從活動。 – Chethan

+1

那麼這是問題的一部分,即使在4.x沒有單獨的活動來發送意圖也不會啓動對話框(至少在我們使用的設備上)。創建一個除了發送意圖之外什麼都不做的新活動,然後從您的服務中啓動該活動。 – manicmethod