day40_实战项目安全卫士之第03天

01_手机防盗界面事件处理

 

02_sim卡变更报警

03_gps定位

 

  1. wifi定位

    绑定IP定位

  2. 3g/4g 网络:基站定位 --- 消极定位,精确度非常差

    网络信号中转的作用

    铱星公司 77颗卫星,实际66颗就可以

     

    城市:定位较准确,误差几十米

    偏远山区:误差几公里,或更高

  3. 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,在代码中创建设备管理器和组件

  1. 设备管理器
    							

DevicePolicyManager dpm = (DevicePolicyManager) getSystemService(DEVICE_POLICY_SERVICE);

  1. 组件
    							

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

  1. 点击menu键来触发
  2. 用自己定义的view显示

14_弹出窗体的介绍

系统弹出的对话框在屏幕中央

定义任意位置弹出

15_弹出窗体

 

弹出窗体一定要注意关闭

 

初始化

 

获取当前组件在屏幕上的位置坐标:

弹出窗口播放动画(必须有背景资源):

16_弹出窗体修改手机防盗名

 

17_设置中心

 

界面抽取封装

 

 

18_自定view1

自定义设置中心的item

    复合组件当成一个组件来用

19_自定义view2

先获取到属性值,在设置给组件

 

attr属性文件的设置:

 

 

20_自定义属性总结

 

  1. 自定义命名空间

xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:pikachu=http://schemas.android.com/apk/res-auto

  1. 创建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>

  2. 在自定义组件中使用自定义属性

    <com.pikachu.mobileguard.view.MySettingCenterItemView

    pikachu:title="自动更新设置"

    pikachu:content="自动更新已经关闭-自动更新已经打开"

    android:layout_width="match_parent"

    android:layout_height="wrap_content"

    />

  3. 获取自定义属性的数据

     

    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]);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值