01_手机防盗界面事件处理
02_sim卡变更报警
03_gps定位
-
wifi定位
绑定IP定位
-
3g/4g 网络:基站定位 --- 消极定位,精确度非常差
网络信号中转的作用
铱星公司 77颗卫星,实际66颗就可以
城市:定位较准确,误差几十米
偏远山区:误差几公里,或更高
-
GSP:最常用的定位方式,卫星定位
特点:越空旷,精度越高,定位越准
04_gps定位2
05_一键卸载
06_一键锁屏一键卸载
任务栈:
同一个app的不同Activity, 必须 finish() 才能退出任务栈显示另一个
07_手机卫士一键锁屏
设备管理器操作步骤
1,创建类DeviceAdminReceiver的子类
如:com.itheima62.lockscreen.DeviceAdminSample
2,在清单文件中配置广播接收者
<receiver
android:name="com.itheima62.lockscreen.DeviceAdminSample"
android:description="@string/sample_device_admin_description"
android:label="@string/sample_device_admin"
android:permission="android.permission.BIND_DEVICE_ADMIN" >
<meta-data
android:name="android.app.device_admin"
android:resource="@xml/device_admin_sample" />
<intent-filter>
<action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
</intent-filter>
</receiver>
3,配置字符串相关信息
<string name="activity_sample_device_admin">设备管理员</string>
<string name="sample_device_admin">管理员</string>
<string name="sample_device_admin_description">开启设备管理员,不开启扣2000块</string>
4,在res目录下创建xml文件夹,在该文件夹下创建deviceadminsample.xml文件,内容:
<device-admin xmlns:android="http://schemas.android.com/apk/res/android">
<uses-policies>
<limit-password />
<watch-login />
<reset-password />
<force-lock />
<wipe-data />
<expire-password />
<encrypted-storage />
<disable-camera />
</uses-policies>
</device-admin>
5,在代码中创建设备管理器和组件
-
设备管理器
DevicePolicyManager dpm = (DevicePolicyManager) getSystemService(DEVICE_POLICY_SERVICE);
-
组件
ComponentName who = new ComponentName(this, DeviceAdminSample.class);
6,写功能
dpm.lockNow();一键锁屏
手动激活设备管理器的功能
08_远程清除数据
09_播放报警音乐
10_加密解密算法处理
按位异或加密
/**
* @param seed
* 加密的种子
* @param str
* 要加密的字符串
* @return
*/
public static String encrypt(int seed,String str){
byte[] bytes = str.getBytes();
for (int i = 0; i < bytes.length; i++) {
bytes[i] ^= seed;//对字节加密
}
return new String(bytes);
}
11_加密解密bug处理
在BootReceiver里面设置开机启动服务:
在读取安全号码时也要解密
12_菜单修改手机防盗名
Activity声明周期
所以在onResume()
13_自定菜单显示1
-
点击menu键来触发
-
用自己定义的view显示
14_弹出窗体的介绍
系统弹出的对话框在屏幕中央
定义任意位置弹出
15_弹出窗体
弹出窗体一定要注意关闭
初始化
获取当前组件在屏幕上的位置坐标:
弹出窗口播放动画(必须有背景资源):
16_弹出窗体修改手机防盗名
17_设置中心
界面抽取封装
18_自定view1
自定义设置中心的item
复合组件当成一个组件来用
19_自定义view2
先获取到属性值,在设置给组件
attr属性文件的设置:
20_自定义属性总结
-
自定义命名空间
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:pikachu=http://schemas.android.com/apk/res-auto
-
创建attrs.xml文件
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="MySettingCenterItemView">
<attr name="title" format="string"/>
<attr name="content" format="string"/>
</declare-styleable>
</resources>
-
在自定义组件中使用自定义属性
<com.pikachu.mobileguard.view.MySettingCenterItemView
pikachu:title="自动更新设置"
pikachu:content="自动更新已经关闭-自动更新已经打开"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
-
获取自定义属性的数据
String title = attrs.getAttributeValue("http://schemas.android.com/apk/res-auto", "title");
String content = attrs.getAttributeValue("http://schemas.android.com/apk/res-auto", "content");
mTv_title.setText(title);
mSplit = content.split("-");
mTv_content.setText(mSplit[0]);