歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Android獲取系統隱藏服務實現鎖屏

獲取手機經緯度有 gps , network  , 基站 三種方式,我們可以根據定位的條件,獲取一個最好的定位方式。然後將獲取到經緯度信息發送到指定的手機號碼中。

  1. /* 
  2.  * 單態只允許存在一個實例. 
  3.  * 獲取手機的gps信息  
  4.  */  
  5. public class GPSInfoService {  
  6.     private Context context;  
  7.     private LocationManager manager;  
  8.     SharedPreferences sp ;  
  9.     //私有化構造方法    
  10.     private  GPSInfoService(Context context){     
  11.         this.context= context;  
  12.         manager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);  
  13.         sp = context.getSharedPreferences("config", Context.MODE_PRIVATE);  
  14.     }  
  15.     private static GPSInfoService mGPSService;  
  16.       
  17.     public synchronized static GPSInfoService getInstance(Context context){  
  18.         if(mGPSService==null)  
  19.             mGPSService = new GPSInfoService(context);  
  20.         return mGPSService;  
  21.     }  
  22.       
  23.     /* 
  24.      *  當前你的手機 所支持的定位方式獲取出來  
  25.      *  有多種定位方式 gps network ,基站, passive 
  26.      *  可以根據定位的條件 ,獲取 一個最好的定位方式http://www.linuxidc.com  
  27.      */  
  28.     public void registerLocationUpdates(){  
  29.         Criteria criteria = new Criteria();  
  30.         // 設置定位的精度    
  31.         criteria.setAccuracy(Criteria.ACCURACY_COARSE); //獲取大體的位置   
  32.         criteria.setAltitudeRequired(false); // 海拔信息   
  33.         criteria.setCostAllowed(true); //允許產生費用   
  34.         criteria.setPowerRequirement(Criteria.POWER_LOW); //低功耗   
  35.           
  36.         //獲取一個最符合查詢條件的位置提供者    
  37.         String provider  =manager.getBestProvider(criteria, true);  
  38.           
  39.         // 位置改變就會調用Linster的監聽器 獲取經度緯度   
  40.         manager.requestLocationUpdates(provider, 600000, getLinster());  
  41.     }  
  42.       
  43.     public void cancleLocationUpdates(){  
  44.         manager.removeUpdates(getLinster());  
  45.     }  
  46.     private static MyGPSLinster myGPSLinser;  
  47.       
  48.     private MyGPSLinster getLinster(){  
  49.         if(myGPSLinser==null)  
  50.             myGPSLinser = new MyGPSLinster();  
  51.         return myGPSLinser;  
  52.     }  
  53.       
  54.     private class MyGPSLinster implements LocationListener{  
  55.   
  56.         // 用戶位置改變的時候 的回調方法    
  57.         public void onLocationChanged(Location location) {  
  58.             //獲取到用戶的緯度    
  59.             double latitude= location.getLatitude();  
  60.             //獲取到用戶的經度   
  61.             double longitude = location.getLongitude();  
  62.             //進行封裝寫入到文件中   
  63.             String locationstr = "jing du "+ longitude + " weidu  :"+latitude;  
  64.             Editor  editor =  sp.edit();  
  65.             editor.putString("lastlocation", locationstr);  
  66.             editor.commit();  
  67.         }  
  68.         // 狀態改變    
  69.         public void onStatusChanged(String provider, int status, Bundle extras) {  
  70.             // TODO Auto-generated method stub   
  71.         }  
  72.         //gps ,打開   
  73.         public void onProviderEnabled(String provider) {  
  74.             // TODO Auto-generated method stub   
  75.         }  
  76.         //關閉   
  77.         public void onProviderDisabled(String provider) {  
  78.             // TODO Auto-generated method stub   
  79.         }  
  80.     }  
  81.       
  82.     /** 
  83.      * 獲取手機的最後一次位置  
  84.      * @return 
  85.      */  
  86.     public String getLastPosition(){  
  87.         return sp.getString("lastlocation""");  
  88.     }  
  89. }  

獲取短信的經緯度並將獲取到的經緯度發送到指定的號碼上:

  1. //獲取當前手機的經緯度.   
  2. GPSInfoService.getInstance(context).registerLocationUpdates();  
  3. //把經緯度的信息發送到安全號碼 ,獲取到短信發送器,將短信發送到指定的號碼   
  4. SmsManager smsManager = SmsManager.getDefault();  
  5. smsManager.sendTextMessage("15287978798"null, GPSInfoService.getInstance(context).getLastPosition() , nullnull);  
Copyright © Linux教程網 All Rights Reserved