安卓开发小练手之手机卫士开发(4)——手机防盗设置界面

本文介绍了一款手机防盗应用的四个设置界面设计及其功能实现,包括SIM卡变更报警、手机定位追踪等功能。详细展示了如何通过Android系统API获取SIM卡序列号并存储到本地,为后续防盗功能提供支持。

我们有4个手机防盗的界面,第一个是显示功能,第二个是输入自己的手机号码,这个手机号码可以用来判断是否被换卡,当换卡的时候我们可以报警等,第三个界面是输入用户设置的安全号码,这个号码可以用于当手机丢失的时候软件后台检测手机号码并且检测号码里面的内容,进行操作。
第一个设置界面:
简单的布局,显示有什么功能即可。布局代码如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" 
    android:background="@drawable/bigwhite_4">
    <TextView 
        android:background="#FFFF00"
       style="@style/text_title"
       android:gravity="center_horizontal"
        android:text="1.欢迎使用设置向导"
     />
    <ImageView 
        style="@style/divide_style"
        />

    <TextView
        style="@style/text_content_style"
         android:text="您的手机卫士具有以下功能:"
         android:layout_marginBottom="10dp"
        />
    <LinearLayout 
        android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
        >
    <ImageView 
        style="@style/start_style"
        />

    <TextView 
        android:layout_marginTop="1dp"
         style="@style/text_content_style"
        android:text="SIM卡变更报警"
        />
    </LinearLayout>
    <LinearLayout 
        android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
        >
    <ImageView 

        style="@style/start_style"
        />


    <TextView 
        android:layout_marginTop="1dp"
         style="@style/text_content_style"
        android:text="手机定位追踪"
        />
    </LinearLayout>
    <LinearLayout 
        android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
        >
    <ImageView 

        style="@style/start_style"
        />
    <TextView 
         android:layout_marginTop="1dp"
         style="@style/text_content_style"
        android:text="手机数据远程销毁"
        />
    </LinearLayout>
    <LinearLayout 
        android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
        >
    <ImageView 
        style="@style/start_style"
        />
    <TextView 
         android:layout_marginTop="1dp"
         style="@style/text_content_style"
        android:text="手机远程锁屏"
        />
    </LinearLayout>

     <LinearLayout 
         android:layout_marginTop="3dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_gravity="center"
       >
      <ImageView 

           android:layout_marginTop="1dp"
            style="@style/statu_on_style"
          />
        <ImageView 
            style="@style/statu_off_style"
          />
        <ImageView 
            style="@style/statu_off_style"
          />
        <ImageView 
            style="@style/statu_off_style"
          />
   </LinearLayout>

      <LinearLayout 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_gravity="right"
       >
     <Button
    style="@style/button_next_style"
    android:layout_marginTop="250dp"
           />
    </LinearLayout>
</LinearLayout>

在这里学到最多的就是封装样式,将我们需要的进行样式的封装,可以提高代码的复用性。在这里,无论是分割线的样式封装还是星星图标的样式封装,都给了封装便于使用。
对应的Activity,同样是一个继承Activity的界面,然后在主清单进行注册,然后再设置加载界面。
剩下的几个设置界面就不多说,现在我们主要来看看界面的按钮我们必须增加点击事件,当每一个下一步的时候,我们就要进行我们数据的存储,首先我们先看第二个布局文件中有自己的手机号码,在这个点击下一步的时候,我们可以将手机卡的序列号取出,并进行保存在SharedPerferences中。
思路如下:
1、得到一个手机管理器,通过上下文获取
TelephoneManger tm=(TelephoneManger )getSystemService(TELEPHONY_SERVICE);
得到一个sim序列号
String Sim=tm.getSimSerialNumber();
//使用SharedPerferences进行存储在本地文件夹
Editor editor=sp.edit();
editor.putString(“simSerialNumber”, simSerialNumber);
editor.commit();
总体代码如下:

package developer.yupeibiao.mobilesafe.ui;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.telephony.TelephonyManager;
import android.view.View;
import android.widget.Toast;

import developer.yupeibiao.mobilesafe.R;

public class SetGuide2Activity extends Activity {

    //得到手机管理者
    private TelephonyManager tm;
    private SharedPreferences sp;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.setguide2);
        //得到sharedprefrene
        sp=getSharedPreferences("config_test", Context.MODE_PRIVATE);
        //得到手机服务管理者
        tm =(TelephonyManager) getSystemService(TELEPHONY_SERVICE);
}
    /**
     * 下一步按钮操作
     * */
    public void next(View view){
        //获取手机的SIM卡序列号
        String simSerialNumber=tm.getSimSerialNumber();
        //进行序列号的保存
        Editor editor=sp.edit();
        editor.putString("simSerialNumber", simSerialNumber);
        editor.commit();
        Intent intent=new Intent(this,SetGuide3Activity.class);
        startActivity(intent);
        finish();
    }
    /**
     * 上一步按钮操作
     * */
    public void previous(View view){
        Intent intent=new Intent(this,SetGuideActivity.class);
        startActivity(intent);
        finish();
    }

}

在第三个获得得到设置的安全号码的时候,我们也同样进行相同的操作保存。
这样,四个界面的设置的保存也就完成了。
接下来是手机防盗相关功能的实现了,下面一个章节会讲解。

先展示下效果 https://pan.quark.cn/s/a4b39357ea24 遗传算法 - 简书 遗传算法的理论是根据达尔文进化论而设计出来的算法: 人类是朝着好的方向(最优解)进化,进化过程中,会自动选择优良基因,淘汰劣等基因。 遗传算法(英语:genetic algorithm (GA) )是计算数学中用于解决最佳化的搜索算法,是进化算法的一种。 进化算法最初是借鉴了进化生物学中的一些现象而发展起来的,这些现象包括遗传、突变、自然选择、杂交等。 搜索算法的共同特征为: 首先组成一组候选解 依据某些适应性条件测算这些候选解的适应度 根据适应度保留某些候选解,放弃其他候选解 对保留的候选解进行某些操作,生成新的候选解 遗传算法流程 遗传算法的一般步骤 my_fitness函数 评估每条染色体所对应个体的适应度 升序排列适应度评估值,选出 前 parent_number 个 个体作为 待选 parent 种群(适应度函数的值越小越好) 从 待选 parent 种群 中随机选择 2 个个体作为父方和母方。 抽取父母双方的染色体,进行交叉,产生 2 个子代。 (交叉概率) 对子代(parent + 生成的 child)的染色体进行变异。 (变异概率) 重复3,4,5步骤,直到新种群(parentnumber + childnumber)的产生。 循环以上步骤直至找到满意的解。 名词解释 交叉概率:两个个体进行交配的概率。 例如,交配概率为0.8,则80%的“夫妻”会生育后代。 变异概率:所有的基因中发生变异的占总体的比例。 GA函数 适应度函数 适应度函数由解决的问题决定。 举一个平方和的例子。 简单的平方和问题 求函数的最小值,其中每个变量的取值区间都是 [-1, ...
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值