永发信息网

android 检查GPS状态 开启还是关闭

答案:4  悬赏:80  手机版
解决时间 2021-03-31 01:56
  • 提问者网友:疯孩纸
  • 2021-03-30 16:09
android 检查GPS状态 开启还是关闭
最佳答案
  • 五星知识达人网友:轻熟杀无赦
  • 2021-03-30 17:02
我们在做手机开发的时候,往往需要获取用户当前的位置,以使用户获得更好的体验。这就需要我们在程序中写出判断用户是否打开GPS定位系统,并对用户做出提示。
判断用户是否打开GPS代码如下:
public static final boolean isOPen(final Context context) {  
            LocationManager locationManager   
                                     = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);  
            // 通过GPS卫星定位,定位级别可以精确到街(通过24颗卫星定位,在室外和空旷的地方定位准确、速度快)  
            boolean gps = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);  
            // 通过WLAN或移动网络(3G/2G)确定的位置(也称作AGPS,辅助GPS定位。主要用于在室内或遮盖物(建筑群或茂密的深林等)密集的地方定位)  
            boolean network = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);  
            if (gps || network) {  
                return true;  
            }  
      
            return false;  
        }而有些时候用户并不能配合我们打开GPS系统,如果我的应用必须打开GPS(比如说一些租车、送餐类型APP需要获取用户的位置信息),就需要强制用户打开GPS定位。代码如下:

public static final void openGPS(Context context) {  
            Intent GPSIntent = new Intent();  
            GPSIntent.setClassName("com.android.settings",  
                    "com.android.settings.widget.SettingsAppWidgetProvider");  
            GPSIntent.addCategory("android.intent.category.ALTERNATIVE");  
            GPSIntent.setData(Uri.parse("custom:3"));  
            try {  
                PendingIntent.getBroadcast(context, 0, GPSIntent, 0).send();  
            } catch (CanceledException e) {  
                e.printStackTrace();  
            }  
        }附录:需要在Mainfast.xml中添加的权限

 
 
 
 
 


全部回答
  • 1楼网友:零点过十分
  • 2021-03-30 20:25
LocationManager mLocationManager;这个变量要初始化。
初始化为:LocationManager mLocationManager= (LocationManager) getSystemService(Context.LOCATION_SERVICE);
  • 2楼网友:你哪知我潦倒为你
  • 2021-03-30 19:18
mLocationManager.isProviderEnabled(android.location.LocationManager.GPS_PROVIDER);
这是我项目中用的,你那个括号里的好像不全。追问一样,
Eclipse还是报错:The local variable mLocationManager may not have been initialized
  • 3楼网友:人類模型
  • 2021-03-30 18:10
The local variable mLocationManager may not have been initialized
你这个问题不是上面那一行代码出问题了,而是你的LocationManager没有初始化。
添加如下代码:
mLocationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯