- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我看过这个问答 LocationSettingsRequest dialog - onActivityResult() skipped .这不是同一个问题,因为一切都已经在 Activity 中完成了。
使用的代码几乎是 Google Play 服务示例中给出的代码。
我有一个 Activity ,LocationActivity
,它连接到 GoogleApiClient 以获取用户的位置。连接后,我创建一个 LocationSettingsRequest
以确保位置设置已打开。该 Activity 正在实现ResultCallback<LocationSettingsResult>
.
ResultCallback<LocationSettingsResult>.onResult()
被称为如果result.getStatus().getStatusCode() == LocationSettingsStatusCodes.RESOLUTION_REQUIRED
然后status.startResolutionForResult(this, REQUEST_CHECK_SETTINGS)
被调用并显示对话框。 问题,不管选什么,onActivityResult()
永远不会被调用。
@Override
public void onConnected(Bundle connectionHint) {
Log.i(TAG, "GoogleApiClient connected");
LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder()
.addLocationRequest(new LocationRequest().setPriority(LocationRequest.PRIORITY_LOW_POWER));
PendingResult<LocationSettingsResult> result =
LocationServices.SettingsApi.checkLocationSettings(googleApiClient, builder.build());
result.setResultCallback(this);
}
.
@Override
public void onResult(LocationSettingsResult result) {
final Status status = result.getStatus();
Log.d(TAG, "onResult() called with: " + "result = [" + status.getStatusMessage() + "]");
switch (status.getStatusCode()) {
case LocationSettingsStatusCodes.SUCCESS:
getLocation();
break;
case LocationSettingsStatusCodes.RESOLUTION_REQUIRED:
// Location settings are not satisfied. But could be fixed by showing the user
// a dialog.
try {
// Show the dialog by calling startResolutionForResult(),
// and check the result in onActivityResult().
status.startResolutionForResult(this, REQUEST_CHECK_SETTINGS);
} catch (IntentSender.SendIntentException e) {
Log.d(TAG, "", e);
// Ignore the error.
}
break;
case LocationSettingsStatusCodes.SETTINGS_CHANGE_UNAVAILABLE:
showManualInputDialog();
break;
}
}
我从来没有到过这里:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Log.d(TAG, "onActivityResult() called with: " + "requestCode = [" + requestCode + "], resultCode = [" + resultCode + "], data = [" + data + "]");
switch (requestCode) {
case REQUEST_CODE_RESOLUTION:
retryConnecting();
break;
case REQUEST_CHECK_SETTINGS:
if (resultCode == Activity.RESULT_OK) {
getLocation();
} else {
showManualInputDialog();
}
break;
default:
super.onActivityResult(requestCode, resultCode, data);
break;
}
}
顺便说一句。它在我的 S3 上运行了几次。据我所知,当我选择不再询问时它就停止了工作。但是,它从未在模拟器或 Tab 10 上运行过,而且在我的 S3 上也不再运行。
最佳答案
如果您在 Fragment 中运行此代码,则不要使用 startResolutionForResult()。而是使用startIntentSenderForResult(status.getResolution().getIntentSender(), REQUEST_CODE_LOCATION_SETTING, null, 0, 0, 0, null);
和 fragment 中的重写器 onaActivityResult()。结果将仅传递给此方法。
关于android - 为什么 LocationSettingsResult startResolutionForResult 不调用 onActivityResult?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34361904/
我正在尝试通过编写 GPS 跟踪服务向我的应用添加 GPS 跟踪功能。我一直在关注有关如何通过 Google Play 服务执行此操作的 Android 开发人员资料,但我一直停留在 onConnec
所以我正在使用一个 gps 类来打开 gps,这是一个允许我们发送到 onActivityResult 的方法。 ,但由于在 AndroidX 上已弃用且仍然可用,android 团队向我们推荐下一个
enter image description here 无论如何都要覆盖 startResolutionForResult() 返回的 google play 服务对话框。我正在从位置设置 api
适用于 Android 的 Google API 允许我显示一个对话框,要求用户打开禁用的设置,如下所示 dialog使用状态类。如何更改对话框的标题? 我无法实现自定义对话框的其他选项,因为我会询问
很长一段时间以来,我一直在努力弄清楚如何解决这个问题,但我找不到任何关于问题所在的好信息。 代码来源于:http://developer.android.com/google/auth/api-cli
我正在尝试将 Google 云端硬盘应用到我的 Android 应用程序,但我什至无法连接到 Api 客户端。我不知道为什么: 我已经在开发者控制台中为 ~/.android/debug.keysto
我看过这个问答 LocationSettingsRequest dialog - onActivityResult() skipped .这不是同一个问题,因为一切都已经在 Activity 中完成了
我正在为 Google Play 制作 Cordova 插件。目前,我已经通过手动修改我的 CordovaActivity 函数“损坏”了该插件。我需要将所有代码放入插件文件中,而不是在 Cordov
当我调用以编程方式使用 GoogleApiClient 将 gps 启用到 fragment 中时出现问题...我的代码是.. final Status status = result.getSta
a据此: https://developers.google.com/android/reference/com/google/android/gms/location/SettingsApi 您可以
我正在使用 Google 登录 Authenticate with a backend server ,并想测试我是否在使用 Status#hasResolution和 Status#startRes
我是一名优秀的程序员,十分优秀!