设置客户app为设备管理者 android9.0 效果如同adb shell dpm set-device-owner

设置客户app为设备管理者--效果如同:adb shell dpm set-device-owner xxxx

 

 

 

diff --git a/frameworks/base/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/frameworks/base/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
index 75269035f4..69c01b337d 100755
--- a/frameworks/base/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
+++ b/frameworks/base/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
@@ -12307,7 +12307,8 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {

     private boolean isAdb() {
         final int callingUid = mInjector.binderGetCallingUid();
-        return callingUid == Process.SHELL_UID || callingUid == Process.ROOT_UID;
+    //    return callingUid == Process.SHELL_UID || callingUid == Process.ROOT_UID;
+             return true;
     }

     @Override
diff --git a/packages/apps/Settings/src/com/android/settings/SettingsActivity.java b/packages/apps/Settings/src/com/android/settings/SettingsActivity.java
index 387d8bbab9..4f41060405 100755
--- a/packages/apps/Settings/src/com/android/settings/SettingsActivity.java
+++ b/packages/apps/Settings/src/com/android/settings/SettingsActivity.java
@@ -74,7 +74,7 @@ import com.android.settingslib.development.DevelopmentSettingsEnabler;
 import com.android.settingslib.drawer.DashboardCategory;
 import com.android.settingslib.drawer.SettingsDrawerActivity;
 import com.android.settingslib.utils.ThreadUtils;
-
+import android.app.admin.DevicePolicyManager;
 import java.util.ArrayList;
 import java.util.List;

@@ -234,9 +234,15 @@ public class SettingsActivity extends SettingsDrawerActivity
     @Override
     protected void onCreate(Bundle savedState) {
         super.onCreate(savedState);
-        Log.d(LOG_TAG, "Starting onCreate");
+        Log.d(LOG_TAG, "Starting onCreate-------------runSetDeviceOwner---zgl");
         long startTime = System.currentTimeMillis();

+       try {
+             runSetDeviceOwner();
+        } catch (Exception e) {
+            Log.d(LOG_TAG, "Starting onCreate--------e");
+        }
+
         final FeatureFactory factory = FeatureFactory.getFactory(this);

         mDashboardFeatureProvider = factory.getDashboardFeatureProvider(this);
@@ -824,4 +830,33 @@ public class SettingsActivity extends SettingsDrawerActivity

         return bitmap;
     }
+
+
+
+
+DevicePolicyManager mDPM;
+private void runSetDeviceOwner() throws android.os.RemoteException {
+mDPM = (DevicePolicyManager)getSystemService(Context.DEVICE_POLICY_SERVICE);
+ComponentName mComponent=new ComponentName("xxxxx","xxxxxx.MyAdmin");
+mDPM.setActiveAdmin(mComponent, true /*refreshing*/);
+
+try {
+            if (!mDPM.setDeviceOwner(mComponent, "", 0)) {
+                throw new RuntimeException(
+                        "Can't set package " + mComponent + " as device owner.");
+            }
+        } catch (Exception e) {
+            // Need to remove the admin that we just added.
+          // mDPM.removeActiveAdmin(mComponent, UserHandle.USER_SYSTEM);
+            throw e;
+        }
+mDPM.setUserProvisioningState(
+                DevicePolicyManager.STATE_USER_SETUP_FINALIZED, 0);
+          Log.d("qq", "Device owner set to package"+ mComponent);
+           Log.d("qq", "Active admin set to component"+ mComponent.toShortString());
+}
+
+
+
 }
(END)

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值