手机安全卫士------手机防盗页面之播放报警音乐&GPS定位
来源:互联网 发布:JavaScript this 编辑:程序博客网 时间:2024/04/29 21:10
播放报警音乐
1.把音乐文件放在res/raw文件中
2.创建MediaPlayer对象
MediaPlayer player = MediaPlayer.create(Context,R.raw.*);
3.设置声音为最高:
player.setVolume(1.0f,1.0f);
4.设置声音为循环播放:
player.setLooping(true);
代码:
//报警音乐 MediaPlayer mediaPlayer = MediaPlayer.create(context, R.raw.alarm); //音量调成最高 mediaPlayer.setVolume(1.0f,1.0f); //循环播放 mediaPlayer.setLooping(true); //开始播放 mediaPlayer.start();
GPS定位
1.定位方式:
网络定位 基站定位 GPS定位
(1)网络定位 WiFi 2g 3g
得到IP地址 ,根据IP地址确定其大概方位
误差很大
(2)基站定位
定位的精确度取决于基站的数量
(3)GPS定位
通过卫星定位。
适用于在空旷的场地
A-GPS
缩短定位时间 、降低耗电量、提升定位灵敏度
精确度高 15m左右
定位功能的代码实现:
1.创建一个类:GPSService,继承自Service
2.在清单列表中注册
3.在onCreate()方法中进行获取位置的操作
创建位置服务
LocationManager manager = getSystemService(LOCATION_SERVICE);获取最佳位置提供者
设置条件
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);获取最佳位置提供者
String provider = criteria.getBestProvider(criteria,true);监听位置变化
manager.requestLocationUpdates()
·第一个参数: 定位方式(“gps”)
·第二个参数: 多久更新一次 60000(1分钟)
·第三个参数:多少米更新一次 50
·第四个参数: 接口,监听位置
new LocationListener{
//位置改变时回调
onLocationChanged()
{
String jingdu = “”+location.getLongitude();
String weidu = “”+location.getLatitude();
//精确度
String accuracy = “”+location.getAccuracy();
}//状态发生改变时回调 从开启到关闭之类的
onStatusChanged()
{}
//某一个位置提供者可用
onProviderEnabled()//某一个位置提供者不可用
onProviderDisabled()
}
取消监听:
onDestroy()中:
lm.removeUpdates(listener);
listener = null;
权限: ACCESS_FINE_LOCATION 高精度位置
ACCESS_COARSE_LOCATION 粗略位置
ACCESS_MOCK_LOCATION 模拟器位置
火星坐标系统(国家保密插件)
出于安全战略,我国GPS的定位结果都会有一定的偏移量(无规律的加偏)
//火星坐标转换代码:(网上有,可以降低偏移量,提高精确度)
1.ModifyOffset.getInstance(.class.getResouceAdStream(.dat));
2.PointDouble newdouble1 = offset.s2c(new PointDouble(经度,纬度))
3.longtitude = offset.X;
4.latitude = offset.Y;
最终的代码实现:
GPSService.class
public class GPSService extends Service{ private SharedPreferences sp; private SharedPreferences.Editor editor; private LocationManager manager; private MyLocalChangedListener listener; public GPSService() { } public IBinder onBind(Intent intent) { return new Binder(); } public void onCreate() { super.onCreate(); sp = getSharedPreferences("config",MODE_PRIVATE); editor = sp.edit(); listener = new MyLocalChangedListener(); //创建定位服务 manager = (LocationManager) getSystemService(LOCATION_SERVICE); //设置条件 Criteria criteria = new Criteria(); criteria.setAccuracy(Criteria.ACCURACY_FINE); //获得最佳的位置提供者 String providers = manager.getBestProvider(criteria,true); //监听位置的变化 manager.requestLocationUpdates(providers,60000,50,listener); } public void onDestroy() { super.onDestroy(); manager.removeUpdates(listener); listener = null; } public class MyLocalChangedListener implements LocationListener { //位置发生变化时回调 public void onLocationChanged(Location location) { //1.获取经纬度和精确度 double longitude = location.getLongitude(); double latitude = location.getLatitude(); //2.把普通坐标转换成火星坐标 InputStream is = GPSService.class.getResourceAsStream("axisoffset.dat"); try { ModifyOffset modify = ModifyOffset.getInstance(is); PointDouble pointDouble = modify.s2c(new PointDouble(longitude,latitude)); String longitudeTrue = pointDouble.x+""; String latitudeTrue = pointDouble.y+""; //保存经纬度 editor.putString("location","经度:"+longitudeTrue+"\n纬度:latitude"); editor.commit(); } catch (Exception e) { e.printStackTrace(); } } //状态发生变化时回调 public void onStatusChanged(String provider, int status, Bundle extras) { } //位置提供者可用时回调 public void onProviderEnabled(String provider) { } //位置提供者不可用时回调 public void onProviderDisabled(String provider) { } }}
在SmsReceiver中
//获得定位String number = sp.getString("safeNumber",null);Intent intent1 = new Intent(context, GPSService.class);context.startService(intent1);String location = sp.getString("location",null);//发送短信if(TextUtils.isEmpty(location)){ SmsManager.getDefault().sendTextMessage(number,null,"位置正在获取中,请稍后。。。",null,null);}else{ SmsManager.getDefault().sendTextMessage(number,null,location,null,null);}
百度定位和Google官方好像都提供了定位框架,做完这个项目之后学一下~~~
- 手机安全卫士------手机防盗页面之播放报警音乐&GPS定位
- 手机安全卫士------手机防盗页面之自定义对话框&MD5加密
- 手机安全卫士------手机防盗页面之发送短信&接收短信
- 92.手机播放报警音乐
- 手机安全卫士------手机防盗页面之完成向导页面的UI布局和动画
- 手机安全卫士------手机防盗页面之sim卡绑定&读取联系人
- 手机安全卫士------手机防盗页面之销毁数据&远程锁屏
- GPS定位与手机定位之不同
- 手机安全卫士------Splash页面
- 【边做项目边学Android】手机安全卫士06-手机防盗之自定义对话框
- 【边做项目边学Android】手机安全卫士07-手机防盗之进入限制
- 手机GPS定位导航
- android 手机 GPS定位
- 手机GPS定位
- 2.12 手机GPS定位
- 手机GPS定位
- 手机GPS定位
- Android手机应用开发之手机GPS定位
- OpenGL教程翻译 第七课 旋转变换
- AsyncHttpClient
- 【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记40 NSTimer
- [AD]如何取消普通用户加入域的权限
- OpenGL教程翻译 第八课 缩放变换
- 手机安全卫士------手机防盗页面之播放报警音乐&GPS定位
- CodeForces 556C Case of Matryoshkas 娃娃组装
- ubuntu清理垃圾
- Linux中断处理驱动设计
- Dialog对话框的自定义
- java web使用session实现使用注册码码登录
- nodejs 操作redis
- #1098 : 最小生成树二·Kruscal算法
- 兄弟打印机出现 DRUM ERROR 的解决方法