gpt4 book ai didi

android - GooglePlayServicesUtil 错误对话框按钮不执行任何操作

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:56:45 26 4
gpt4 key购买 nike

我正在向我的应用添加一个 MapFragment 并具有以下代码,改编自 map 教程:

private boolean servicesConnected() {
// Check that Google Play services is available
int resultCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);

// If Google Play services is available
if (ConnectionResult.SUCCESS == resultCode) {
// In debug mode, log the status
Log.d("Location Updates", "Google Play services is available.");
// Continue
return true;

// Google Play services was not available for some reason
} else {
GooglePlayServicesUtil.getErrorDialog(resultCode, this, 7).show();
return false;
}
}

我正在使用过时的 google play 服务测试出厂重置的 Galaxy tab 10.1。因此,当我尝试打开 MapFragment 时,我调用 servicesConnected() 进行检查,正如预期的那样,我收到一个对话框,告诉我我需要 Google Play 服务。在对话框的底部有一个按钮“获取 Google Play 服务”,但是当我点击它时,它什么也没做。我的 LogCat 产生以下输出:

07-23 15:30:43.580: W/GooglePlayServicesUtil(2515): Google Play services is missing.
07-23 15:30:48.510: E/SettingsRedirect(2515): Can't redirect to app settings for Google Play services

我有以下 onConnectionFailed 方法(基本上是从 Android 开发者网站复制粘贴):

public void onConnectionFailed(ConnectionResult connectionResult) {
/*
* Google Play services can resolve some errors it detects.
* If the error has a resolution, try sending an Intent to
* start a Google Play services activity that can resolve
* error.
*/
if (connectionResult.hasResolution()) {
try {
// Start an Activity that tries to resolve the error
connectionResult.startResolutionForResult(
this,
CONNECTION_FAILURE_RESOLUTION_REQUEST);
/*
* Thrown if Google Play services canceled the original
* PendingIntent
*/
} catch (IntentSender.SendIntentException e) {
// Log the error
e.printStackTrace();
}
} else {
/*
* If no resolution is available, display a dialog to the
* user with the error.
*/
GooglePlayServicesUtil.getErrorDialog(connectionResult.getErrorCode(), this, 7).show();
}
}

为什么这不起作用?任何帮助都会很棒。

Here是我工作的 Android 开发页面,here也是与之相关的 SO 帖子。

编辑

我意识到我没有在设备上设置 Google 帐户,所以我设置了一个,但这没有任何区别。

最佳答案

这段代码对我有用:

boolean checkGooglePlayServicesAvailable() {
final int connectionStatusCode = GooglePlayServicesUtil
.isGooglePlayServicesAvailable(getActivity());
Log.i(DEBUG_TAG,
"checkGooglePlayServicesAvailable, connectionStatusCode="
+ connectionStatusCode);
if (GooglePlayServicesUtil.isUserRecoverableError(connectionStatusCode)) {
showGooglePlayServicesAvailabilityErrorDialog(connectionStatusCode);
return false;
}
Toast t = Toast.makeText(getActivity(),
"Google Play service available", Toast.LENGTH_LONG);
t.show();
return true;
}

void showGooglePlayServicesAvailabilityErrorDialog(
final int connectionStatusCode) {
getActivity().runOnUiThread(new Runnable() {
public void run() {
final Dialog dialog = GooglePlayServicesUtil.getErrorDialog(
connectionStatusCode, getActivity(),
REQUEST_GOOGLE_PLAY_SERVICES);
if (dialog == null) {
Log.e(DEBUG_TAG,
"couldn't get GooglePlayServicesUtil.getErrorDialog");
Toast.makeText(getActivity(),
"incompatible version of Google Play Services",
Toast.LENGTH_LONG).show();
}
//this was wrong here -->dialog.show();
}
});
}

关于android - GooglePlayServicesUtil 错误对话框按钮不执行任何操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17811720/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com