2. 14 手机防盗系统:手机定位

1.创建服务,在服务中开启时得到手机的经纬度,并存入到sp中

2.在防盗系统的短信广播中,创建开启服务的Intent

 

 

 

--------------------------------------------------------------------------------
1.创建服务,在服务中开启时得到手机的经纬度,并存入到sp中


public   class   LocationService   extends   Service {
       private   MyListener   listener ;
       private   LocationManager    lm   ;
       private   SharedPreferences   sp ;
       @Override
       public   IBinder onBind(Intent intent) {
               return   null ;
      }

       /**
       * 服务创建时
       */
       @Override
       public   void   onCreate() {
               super .onCreate();
               lm   = (LocationManager) getSystemService(   LOCATION_SERVICE );
            Criteria criteria =   new   Criteria ();
            criteria.setAccuracy(Criteria.   ACCURACY_FINE );
            criteria.setAltitudeRequired(   true );
            criteria.setCostAllowed(   true );
            criteria.setPowerRequirement(Criteria.   POWER_HIGH );
               sp   = getSharedPreferences(   "config" ,   MODE_PRIVATE );
            String provider =   lm .getBestProvider(criteria,   true );
            System.   out .println(   "最好的位置提供者:"   +provider);
               listener   =   new   MyListener();
               lm .requestLocationUpdates( provider, 0, 0,   listener );
      }
       private   class   MyListener   implements   LocationListener{

               //当位置变化的时候调用的方法.
               @Override
               public   void   onLocationChanged(Location location) {
                  String accuracy =   "jqd:" +location.getAccuracy();      //精确度
                  String longitude =   "jd:" +location.getLongitude();     //经度
                  String latitude =   "wd:" +location.getLatitude();        //纬度
                  
                  String lastLocation = longitude+ "\n" +latitude+ "\n"   +accuracy;  
                  Editor editor =   sp .edit();
                  editor.putString(   "lastLocation" , lastLocation);        //将手机经纬度存储到 sp
                  editor.commit();
            }

               @Override
               public   void   onStatusChanged(String provider,   int   status, Bundle extras) {
                  
            }

               @Override
               public   void   onProviderEnabled(String provider) {
                  
            }

               @Override
               public   void   onProviderDisabled(String provider) {
                  
            }
            
      }
       @Override
       public   void   onDestroy() {
               lm .removeUpdates(   listener );
               listener   =   null ;
               super .onDestroy();
      }
      
      
}


-------------------------------------------------------------------------------------
2.在防盗系统的短信广播中,创建开启服务的Intent


public   class   SmsReceiver   extends   BroadcastReceiver {

       private   static   final   String   TAG   =   "SmsReceiver" ;

       @Override
       public   void   onReceive(Context context, Intent intent) {
            
            Object[] objs = (Object[]) intent.getExtras().get(   "pdus" );      //获取短信
               for   (Object obj : objs) {
                  SmsMessage message = SmsMessage. createFromPdu(( byte []) obj);
                  String sender = message.getOriginatingAddress();
                  String body = message.getMessageBody();
                  
                     if (   "#*location*#" .equals(body)){
                        Log. i( TAG ,   "获取位置手机位置.."   );
                        
                        Intent i =   new   Intent(context,LocationService. class   );
                        context.startService(i);
                        SharedPreferences sp = context.getSharedPreferences( "config"   , Context. MODE_PRIVATE );
                        String lastLocation = sp.getString( "lastLocation"   ,   ""   );
                           if (!TextUtils. isEmpty(lastLocation)){
                               SmsManager smsManager = SmsManager.getDefault();
                              smsManager. sendTextMessage(sender,   null , lastLocation,   null   ,   null );
                        }
                        abortBroadcast();
                        
                        
                        
                  }   else   if (   "#*alarm*#" .equals(body)){
                        Log. i( TAG ,   "播放警报铃声"   );
                        
                        MediaPlayer mediaPlayer = MediaPlayer.create(context,R.raw. bbk );
                        mediaPlayer.setVolume(1.0f, 1.0f);
                        //player.setLooping(true);    //一直都播放下去
                        mediaPlayer.start();
                        abortBroadcast();
                        
                  }   else   if (   "#*wipedata*#" .equals(body)){
                        Log. i( TAG ,   "清除数据"   );
                        abortBroadcast();
                        
                  }   else   if (   "#*lockscreen*#" .equals(body)){
                        Log. i( TAG ,   "远程锁屏"   );
                        abortBroadcast();
                        
                  }
                  
                  
            }
            
      }

}







 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值