永发信息网

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

答案:4  悬赏:80  手机版
解决时间 2021-03-31 01:56
android 检查GPS状态 开启还是关闭
最佳答案
我们在做手机开发的时候,往往需要获取用户当前的位置,以使用户获得更好的体验。这就需要我们在程序中写出判断用户是否打开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中添加的权限

 
 
 
 
 


全部回答
LocationManager mLocationManager;这个变量要初始化。
初始化为:LocationManager mLocationManager= (LocationManager) getSystemService(Context.LOCATION_SERVICE);
mLocationManager.isProviderEnabled(android.location.LocationManager.GPS_PROVIDER);
这是我项目中用的,你那个括号里的好像不全。追问一样,
Eclipse还是报错:The local variable mLocationManager may not have been initialized
The local variable mLocationManager may not have been initialized
你这个问题不是上面那一行代码出问题了,而是你的LocationManager没有初始化。
添加如下代码:
mLocationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
跪求这张图片的出处或原图!
泳帽和浴帽的区别
语言学的本体研究是什么,有些什么分支,语言
为什么佳能相机摄像只能摄10分钟呢
一杯盐水,盐占盐水的二十分之三.则盐和水的
台湾济爱堂福避痛怎么买?
科目三又想去练车又不敢去咋办
用这3个造一个句子
NE555系列中耐压最高的是什么型号?
国防事业是什么意思
34 27 37 算什么身材
自主择业外地军转干部可以落户上海吗
科学小子我爱老妈歌词
dota2光法北极光照 技艺宝石有什么用
请教jms中queue内消息如何删除
推荐资讯
上海虹口有仙人跳吗
魔方世界里怎么获得空瓶
现在cf手游什么时间点抽v武器的几率大?有什
甲乙丙三种货物,若购甲三件,乙七件,丙一件,共
女朋友送了我一个百分百纯的巧克力那巧克力很
中交三航的公司简介
2000字晚归检讨书
本人弹吉他,想用微信录了,发给朋友听,用什
高中办了退学手续,还能再回校读书吗
09年世嘉电脑检测出现故障码p0532是什么意思
食品卫生与身体健康密切相关,误食下列物质会
C#中关于Application.Exit()的疑问
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?