android GPS开发实践

1.打开GPS并监听 ,实时显示坐标信息。

 (1)获得GPS系统服务

   LocationManager locationManager = (LocationManager) this.getSystemService(this.LOCATION_SERVICE);

   

  (2)  检查GPS开启与否的状态。

     locationManager.isProviderEnabled(android.location.LocationManager.GPS_PROVIDER)

 

 (3) 监听获取当前经纬度

     locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0,0,new LocationListener() {
			
			@Override
			public void onStatusChanged(String provider, int status, Bundle extras) {
				// TODO Auto-generated method stub
				
			}
			
			@Override
			public void onProviderEnabled(String provider) {
				// TODO Auto-generated method stub
				
			}
			
			@Override
			public void onProviderDisabled(String provider) {
				// TODO Auto-generated method stub
				
			}
			
			@Override
			public void onLocationChanged(Location location) {
				tv.setText(location.getLatitude()+"  "+location.getLongitude());
				
			}
		} );
 

2. 通过GPS获取位置

 // 查找到服务信息
        Criteria criteria = new Criteria();
        criteria.setAccuracy(Criteria.ACCURACY_FINE); // 高精度
        criteria.setAltitudeRequired(false);
        criteria.setBearingRequired(false);
        criteria.setCostAllowed(true);
        criteria.setPowerRequirement(Criteria.POWER_LOW); // 低功耗*/

        String provider = locationManager.getBestProvider(criteria, true); // 获取GPS信息
        Location location = locationManager.getLastKnownLocation(provider); // 通过GPS获取位置

  3. 自动开启GPS

    必须将apk push system/app目录下面才可以。

    Settings.Secure.setLocationProviderEnabled( getContentResolver(), LocationManager.GPS_PROVIDER, true);

          <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"/>

    可以通过下面这个apk把另外一个apk安装到system/app目录下

public class InstallActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        String paramString= "$ adb push MySMS.apk /sdcard/" +"\n"+
                "$ adb shell" +"\n"+
                "$ su" +"\n"+
                "# mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system" +"\n"+
                "# cat /sdcard/MySMS.apk > /system/app/MySMS.apk" +"\n"+
                "# mount -o remount,ro -t yaffs2 /dev/block/mtdblock3 /system" +"\n"+
                "# exit" +"\n"+
                "$ exit";        
        if(RootCmd.haveRoot()){
            if(RootCmd.execRootCmdSilent(paramString)==-1){
                Toast.makeText(this, "安装不成功", Toast.LENGTH_LONG).show();
            }else{
                Toast.makeText(this, "安装成功", Toast.LENGTH_LONG).show();
            }
        }else{
            Toast.makeText(this, "没有root权限", Toast.LENGTH_LONG).show();
        }
        
        
    }
}
 

猜你喜欢

转载自yzyspy.iteye.com/blog/1692243