博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
检测Gps和网络定位权限
阅读量:6766 次
发布时间:2019-06-26

本文共 2064 字,大约阅读时间需要 6 分钟。

hot3.png

利用到GPS,用户希望在手机GPS未开启的时候,提醒用户设置GPS开启。

代码如下

 

 

public class GpsOpenorNot extends Activity {

    @Override
 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  // TODO Auto-generated method stub
     if(requestCode==0){
      
     }
  super.onActivityResult(requestCode, resultCode, data);
 }
 /** Called when the activity is first created. */
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        initGPS();
        isGpsOpen();
    }
    public void  isGpsOpen(){
     LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
     boolean GPS_status = lm.isProviderEnabled(LocationManager.GPS_PROVIDER);//获得手机是不是设置了GPS开启状态true:gps开启,false:GPS未开启
     boolean NETWORK_status = lm.isProviderEnabled(LocationManager.NETWORK_PROVIDER);//另一种Gpsprovider(Google网路地图)
     String status = "";
     if(GPS_status){
      status += "GPS开启";
     }else{
      status += "GPS未开启";
      //return false;
     }
     if(NETWORK_status){
      status += "NETWORK 开启";
     }else{
      status += "NETWORK 未开启";
     }
     //弹出对话框
     new AlertDialog.Builder(GpsOpenorNot.this).setMessage(""+status).setPositiveButton("OK", null).show();
     //弹出Toast
     Toast.makeText(GpsOpenorNot.this, status, Toast.LENGTH_LONG).show();
     
    }
    private void initGPS(){
        LocationManager locationManager=(LocationManager) this.getSystemService(Context.LOCATION_SERVICE);

        //判断GPS模块是否开启,如果没有则开启

        if(!locationManager.isProviderEnabled(android.location.LocationManager.GPS_PROVIDER)){
         Toast.makeText(GpsOpenorNot.this, "GPS is not open,Please open it!", Toast.LENGTH_SHORT).show();
         //转到手机设置界面,用户设置GPS
         Intent intent=new Intent(Settings.ACTION_SECURITY_SETTINGS);
         startActivityForResult(intent,0); //设置完成后返回到原来的界面
        }
        else {
          //弹出Toast
         Toast.makeText(GpsOpenorNot.this, "GPS is ready", Toast.LENGTH_LONG).show();
          //弹出对话框
         new AlertDialog.Builder(this).setMessage("GPS is ready").setPositiveButton("OK", null).show();
        }
   }

}

注意,一定要在AndroidManiFest.xml文件中注册权限 
Android Location提供两种获取地理位置的方式:一种是GPS(LocationManager.GPS_PROVIDER),一种是Google网络地图(LocationManager.NETWORK_PROVIDER)

转载于:https://my.oschina.net/u/2502529/blog/699934

你可能感兴趣的文章