在Andorid的设置->安全里面有个设备管理器的选项,相信大部分android用户都不太会去注意这个东西。近期在安装了一个应用之后发现这个里面的东西变了。怎么回事呢,研究研究看看。
老思路,从已有的最明显的线索開始分析。“设备管理器”这几个字就是最好的线索,在Setting的package里面搜搜,一大堆多语言话的字符串,这个不是我要找的,我要找的是谁在用这个字符串。在一个布局文件中找到了:
res/xml/security_settings.xml
android:summary="@string/manage_device_admin_summary"
android:persistent="false"
android:fragment="com.android.settings.DeviceAdminSettings"/>那就要详细看DeviceAdminSettings这个fragment了。这是一个比較正规的fragment。非常easy理解。关键在当中的updateList这个函数:
void updateList() {
mActiveAdmins.clear();
List cur = mDPM.getActiveAdmins();
if (cur != null) {
for (int i=0; i
mActiveAdmins.add(cur.get(i));
}
}
mAvailableAdmins.clear();
List avail = getActivity().getPackageManager().q