华为手机6.0GPS获取不到定位信息

 

使用环境:

    高德,百度定位很常用,但是在后来的版本上,定位的同时需要定位的权限,更甚者华为手机需要开启GPS才可以获取到定位的相关数据。

使用方法:

1   在动态申请GPS的时候,多申请两个权限:读取内存卡,写入内存卡 

2   直接跳转设置界面确保GPS开关是否开启:  

      isOpen : 判断是否开启GPS定位以及室内定位,当然,GPS是最主要的

      openGPS: 帮助用户开启GPS的代码,执行过后,GPS在设置中是开启状态

     小米系列不需要GPS选项是选中状态就可执行定位代码,所以看起来不明显,但是华为很明显是开启的状态。

/**
 * 华为手机专用?
 * 判断GPS是否开启,GPS或者AGPS开启一个就认为是开启的
 * @param context
 * @return true 表示开启
 */
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
 * @param context
 */
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 (PendingIntent.CanceledException e) {
        e.printStackTrace();
    }
    LogUtil.e("帮助用户强制打开GPS");
}

 

具体使用方法请自行安排,才疏学浅有需要指点在下的请联系我。

QQ:532245792

Tel:   15515291707

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值