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服务页面
}
只是避坑指南,大家看看就好。
本文揭示了uniapp在不同安卓设备上检测GPS状态的差异,强调PDA和传音手机的异常行为,并提供了解决方案,包括如何正确引导用户启用GPS服务。
4137

被折叠的 条评论
为什么被折叠?



