我知道如何在Android编程开启/关闭GPS的问题已经 被 讨论了 很多 次,得到的答复始终是相同的:
"出于安全/隐私原因,你不能转发到位置首选项屏幕,让用户启用/禁用它."
我明白,但是我最近买塔斯克从市场和,中,你可以用它来完成许多其他的东西,你可以设定规则,在进入预定的应用程序自动启用GPS和禁用它退出(见这里的如何做的教程,它只是工作!)和这个应用程序无法使用固件签名密钥签名,因为它适用于许多Android版本和不同的设备,你甚至不需要扎根.
我想在我的应用程序中执行此操作.当然,我不想破坏用户隐私,因此我首先会询问用户是否要使用典型的"记住我的决定"复选框自动启用它,如果他回答是,则启用它.
有没有人对Tasker如何实现这一点有任何想法或线索?
我的应用程序的一部分需要位置服务,因此如果当前关闭位置,应用程序将提示用户启用它.下面是我正在做它:(也见于这个堆栈溢出的答案)
LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder()
.addLocationRequest(mLocationRequest);
builder.setAlwaysShow(true);
PendingResult<LocationSettingsResult> result = LocationServices.SettingsApi.checkLocationSettings(mGoogleApiClient, builder.build());
result.setResultCallback(new ResultCallback<LocationSettingsResult>()
{
@Override
public void onResult(LocationSettingsResult result)
{
final Status status = result.getStatus();
final LocationSettingsStates = result.getLocationSettingsStates();
switch (status.getStatusCode())
{
case LocationSettingsStatusCodes.SUCCESS:
// All location settings are satisfied. The client can initialize location
// requests here.
...
Log.d("onResult", "SUCCESS");
break;
case LocationSettingsStatusCodes.RESOLUTION_REQUIRED:
// Location settings are not satisfied. But could be fixed by showing the user
// a dialog.
Log.d("onResult", "RESOLUTION_REQUIRED");
try …Run Code Online (Sandbox Code Playgroud)