Waze 等应用程序如何以编程方式打开 GPS? [复制]

Posted

技术标签:

【中文标题】Waze 等应用程序如何以编程方式打开 GPS? [复制]【英文标题】:How Some Applications like Waze Turn on GPS programmatically? [duplicate] 【发布时间】:2018-06-25 03:58:19 【问题描述】:

我搜索了很多关于以编程方式打开 GPS 的信息,但没有找到任何解决方案。但是有一些像 Waze 这样的应用程序不是系统应用程序,可以打开 GPS!

例如在 Waze 中显示此弹出窗口(如果您的 GPS 已关闭!):

然后你点击打开 GPS 会显示这个:

GPS 会自动开启! 我们怎样才能像 Waze 一样做到这一点?

【问题讨论】:

你可以参考这个***.com/a/33254073/4427519 【参考方案1】:

以下代码将显示您想要的对话框。 添加以下依赖项。

compile 'com.google.android.gms:play-services-location:11.0.4'

在调用此代码之前,请确保您已连接到googleApiClient

LocationRequest locationRequest = LocationRequest.create();
        locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
        locationRequest.setInterval(30 * 1000);
        locationRequest.setFastestInterval(5 * 1000);
        LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder()
                .addLocationRequest(locationRequest);

        builder.setAlwaysShow(true);
        Task<LocationSettingsResponse> result =
                LocationServices.getSettingsClient(this).checkLocationSettings(builder.build());
        result.addOnCompleteListener(new OnCompleteListener<LocationSettingsResponse>() 
            @Override
            public void onComplete(@NonNull Task<LocationSettingsResponse> task) 
                try 
                    task.getResult(ApiException.class);
                 catch (ApiException exception) 
                    switch (exception.getStatusCode()) 
                        case LocationSettingsStatusCodes.RESOLUTION_REQUIRED:
                            try 
                                ResolvableApiException resolvable = (ResolvableApiException) exception;
                                resolvable.startResolutionForResult(YourActivity.this,100);
                             catch (IntentSender.SendIntentException e) 
                                Log.d(TAG, e.getMessage());
                             catch (ClassCastException e) 
                                Log.d(TAG, e.getMessage());
                            
                            break;
                    
                
            
        );

【讨论】:

感谢您的明确答复 真的很有用。谢谢

以上是关于Waze 等应用程序如何以编程方式打开 GPS? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何在Android上以编程方式启用或禁用GPS?

如何检查我是不是在 android 4.4 及更高版本中以编程方式打开了 gps? [复制]

像 Ola Cabs Android 应用程序一样以编程方式打开 GPS

应用程序打开时如何以编程方式恢复位置访问

如何检查我是否在Android 4.4及以上版本中以编程方式打开gps? [重复]

Android - 以编程方式打开或关闭 GPS