一下这段代码是老师在课堂写的注册设备管理器用到因为文档介绍的方法太复杂= =我自己本人是看得很晕的老师写的那种我在网上搜索不到他把源码的IDevicePolicyManager.aidl搞到项目里,再根据文档说的写了个xml和继承1个DeviceAdminReceiver。再AndroidManifest.xml里面配置一下就ok了获得的mService可以锁屏,可以清楚数据(恢复出厂设置),可以设置密码等
写到这里,主要是想问下各位程序员遇到需要注册一个设备管理器的时候是怎么搞的像老师这些代码要我搞出来= =估计这半年内有点悬还要研究源码呢
Method method = Class.forName("android.os.ServiceManager")
.getMethod("getService", String.class);
IBinder binder = (IBinder) method.invoke(null,
new Object[] { Context.DEVICE_POLICY_SERVICE });
IDevicePolicyManager mService = IDevicePolicyManager.Stub
.asInterface(binder);
ComponentName mAdminName = new ComponentName(this, Myadmin.class);
if (mService != null) {
if (!mService.isAdminActive(mAdminName)) {
Intent intent = new Intent(
DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN,
mAdminName);
startActivity(intent);
}
}

解决方案 »

  1.   

    想问下有没有相关文章是介绍利用反射来调用系统隐藏的api的
      

  2.   

    没有权限问题我上传一个demo给你看看。。你等会
      

  3.   

    没有啥隐藏的api,google的源码都开放的, 都能看到。
    不过没开放出来的,一般使用它写的程序,不能保证在所有的android平台上能用, 因为这不在兼容性要求之中,别人可能会改它。当然在不同的android版本中的变动的可能性也很大,你的程序上去就会挂掉。还有一个,没开放出来的接口,很多你没权限使用。实在是用不着在这方面耍这个小聪明的。
      

  4.   

    没公开的api把framework的jar包通过Lib的方式导一下,然后在order and export里up到android自身的lib上面不就可以用了么~