首页 > 代码库 > 手机远程控制
手机远程控制
1、 设备管理器
手机远程控制最重要的是要外置应用拿到管理设备的权限,这些权限在设备管理器中进行注册,就是大家在我们Settings->安全->设备管理器中能看到的。
A、申明一个管理器权限要求列表:myadmin.xml
1 <?xml version="1.0" encoding="utf-8"?> 2 3 <device-admin xmlns:android="http://schemas.android.com/apk/res/android" > 4 5 <!-- 6 7 限制密码类型 8 9 查看登录方式10 11 重置密码12 13 强制锁屏14 15 清除数据16 17 更改密码18 19 加密设备20 21 关闭摄像头头22 23 -->24 25 <uses-policies>26 27 <limit-password />28 29 <watch-login />30 31 <reset-password />32 33 <force-lock />34 35 <wipe-data />36 37 <expire-password />38 39 <encrypted-storage />40 41 <disable-camera />42 43 </uses-policies>44 45 </device-admin>46 47
B、申明一个设备管理器的调用组件:MyAdminReceiver.java
1 public class MyAdminReceiver extends DeviceAdminReceiver{ 2 3 @Override 4 5 public void onEnabled(Context context, Intent intent) { 6 7 // TODO Auto-generated method stub 8 9 super.onEnabled(context, intent);10 11 }12 13 @Override14 15 public void onDisabled(Context context, Intent intent) {16 17 // TODO Auto-generated method stub18 19 super.onDisabled(context, intent);20 21 }22 23 }
C、在Manifest.xml中注册此组件,注明组件用的是哪一个权限申明表
1 <receiver android:name="com.example.cleaner.MyAdminReceiver" > 2 3 <meta-data 4 5 android:name="android.app.device_admin" 6 7 android:resource="@xml/myadmin" /> 8 9 <!-- 指定设备管理权限设置表 -->10 11 <intent-filter>12 13 <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />14 15 <!-- 拿到设备管理器开启的广播 -->16 17 </intent-filter>18 19 </receiver>
D、启动设备管理器组件注册请求,用来启动设备管理器的注册界面
1 // 拿到一个设备管理器 2 3 DevicePolicyManager devicePolicyManager = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE); 4 5 // new一个新的组件出来,用来启动注册管理器的界面 6 7 ComponentName componentName = new ComponentName( 8 9 MainActivity.this, MyAdminReceiver.class);10 11 Intent intent = new Intent( DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);12 13 intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN,14 15 componentName);16 17 startActivity(intent);
2、 MD5加密模块
作为一款防盗应用,设置只有主人才能进入的密码是必须的,一般密码保存在数据库里,这样的话容易被拿出来查看,所以有必要对密码进行加密。
MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD5实现。
将数据(如汉字)运算为另一固定长度值,是杂凑算法的基础原理,MD5的前身有MD2、MD3和MD4。
MD5的作用是让大容量信息在用数字签名软件签署私人密钥前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的十六进制数字串)。
1 try { 2 3 MessageDigest messageDigest = MessageDigest.getInstance("MD5"); //MD5加密模块 4 5 byte[] bytes = messageDigest.digest(password.getBytes());//加密密码成字节码 6 7 StringBuffer sb = new StringBuffer(); 8 9 String tmp;10 11 for (int i = 0; i < bytes.length; i++) {12 13 tmp = Integer.toHexString(0xff & bytes[i]);//转换成十六进制14 15 if (tmp.length() == 1) {16 17 sb.append("0" + tmp);//补018 19 } else20 21 sb.append(tmp);22 23 }24 25 return sb.toString();26 27 } catch (NoSuchAlgorithmException e) {28 29 throw new RuntimeException("没有此加密算法" + e);30 31 }32 33
3、 定位实现
A、SIM卡被置换给信任号码发短信,密发
1 TelephonyManager telephonyManager = (TelephonyManager) context 2 3 .getSystemService(Context.TELEPHONY_SERVICE); 4 5 // 拿到telephoneymanager对象 6 7 String currentSimString = telephonyManager.getLine1Number(); 8 9 // 获取当前SIM卡号码,需要Permission: READ_PHONE_STATE 10 11 String protectedSim = spPreferences.getString("simSerial", "");12 13 SmsManager smsManager = SmsManager.getDefault();14 15 // 拿到SMS管理器,用于发送短信需要的东西16 17 String number = spPreferences.getString("number", "");18 19 if (isProtected) {20 21 if (!currentSimString.equals(protectedSim)) {22 23 // 发送短信,有5个参数,第一个是要发送到的地址,第二个是发送人,可以设置为null,第三个是要发送的信息,第四个是发送状态,第五个是发送后的,都可以置为null24 25 smsManager.sendTextMessage(number, null, "您一个号码为: "26 27 + protectedSim + " 的好友可能手机被盗,现在他的手机号为:"28 29 + currentSimString + ",请及时通知该好友,谢谢!", null, null);30 31 }32 33 }
4、 清除数据与锁屏
1 DevicePolicyManager manager = (DevicePolicyManager) context 2 3 .getSystemService(Context.DEVICE_POLICY_SERVICE); 4 5 manager.wipeData(0);//清除数据 6 7 manager.resetPassword(lockString[2], 0); 8 9 // 进行锁屏10 11 manager.lockNow();
手机远程控制
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。