簡體   English   中英

設備所有者未在Android M上清除

[英]Device owner not being cleared on Android M

我編寫了一個設備擁有者信息亭應用程序,該應用程序想刪除該設備擁有者的狀態,這樣我就可以將其卸載而不必恢復出廠設置。 以下內容適用於Nougat和Oreo,但不適用於棉花糖(適用於Samsung平板電腦)。

我如何編碼設備所有者的東西的細節:

要將應用設置為設備所有者,請在安裝應用后運行以下adb shell命令:

adb shell dpm set-device-owner com.dps.myapp/.DeviceAdminReceiver

然后,當我嘗試刪除設備所有者狀態並卸載應用程序時,我正在運行以下shell命令:

adb shell am force-stop com.dps.myapp
adb shell am start -n com.dps.myapp/.DeactivateDeviceOwnerActivity
adb shell pm uninstall com.dps.myapp

DeactivateDeviceOwnerActivity是我的應用程序中的一個活動,其中包含以下代碼以清除設備所有者的狀態:

DevicePolicyManager mDevicePolicyManager = (DevicePolicyManager)getSystemService(Context.DEVICE_POLICY_SERVICE);
mDevicePolicyManager.clearDeviceOwnerApp(getApplicationContext().getPackageName());
if (mDevicePolicyManager.isDeviceOwnerApp(getApplicationContext().getPackageName())) {
    Toast.makeText(getApplicationContext(),
        "Failure! App is still device owner.",Toast.LENGTH_LONG)
                        .show();
 }
 else {
    Toast.makeText(getApplicationContext(),
        "Success!", Toast.LENGTH_LONG).show();
 }

如此奇怪的是,我的活動顯示的是Toast,clearDeviceOwnerApp調用可以正常工作,但是當我立即運行卸載命令時,卻收到了“ Failure [DELETE_FAILED_DEVICE_POLICY_MANAGER]”返回消息,因此顯然無法清除設備所有者我的應用

有誰知道棉花糖和后續API之間的任何具體區別,關於設備所有權或DevicePolicyManager,這會導致適用於Nougat和Oreo的代碼在棉花糖上不起作用? 當我發出啟動命令讓DeactivateDeviceOwnerActivity清除設備所有者時,我在系統日志中查找,但未看到任何指示任何異常發生的信息。 任何幫助,將不勝感激。

我在棉花糖上還沒有遇到過這樣的問題。

這很奇怪,盡管我無法給出答案,但我會提出一些建議

1)這可能是一個錯誤。 因此,您可以將設備恢復出廠設置,然后重試。

2)使用模擬器進行這種類型的測試非常方便,因為您可以輕松地刪除並創建一個新的測試。

希望對您有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM