var context = plus.android.importClass( 'android.content.Context' );

    var locationManager = plus.android.importClass( 'android.location.LocationManager' );

    var main = plus.android.runtimeMainActivity();

    var mainSvr = main.getSystemService( context.LOCATION_SERVICE );

    if ( !mainSvr.isProviderEnabled( locationManager.GPS_PROVIDER ) )

毫不意外,你一搜索uniapp检测安卓是否开启GPS都是以上代码。但是(敲重点)

我目前测试了PDA(安卓9.0版本)以上代码检测永远是已开启。传音手机(安卓10版本)以上代码检测永远是未开启,如果你用了下面的代码打开设置页面,会导致信息位置授权弹窗不会弹出。

          if ( !mainSvr.isProviderEnabled( locationManager.GPS_PROVIDER ) ) {
            var Intent = plus.android.importClass( 'android.content.Intent' );
            var Settings = plus.android.importClass( 'android.provider.Settings' );
            var intent = new Intent( Settings.ACTION_LOCATION_SOURCE_SETTINGS );
            main.startActivity( intent ); // 打开系统设置GPS服务页面
          }

只是避坑指南,大家看看就好。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐