我正在使用Google Maps API v2制作Android应用。 由于它需要各种最新版本的Google Play服务,因此我在OnResume()中添加了以下代码。
int status = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
// Check Google Play Service Available
try {
if (status != ConnectionResult.SUCCESS) {
GooglePlayServicesUtil.getErrorDialog(status, this, 10, new DialogInterface.OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
// TODO Auto-generated method stub
Runnable r = new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
onBackPressed();
}
};
r.run();
}
}).show();
}
} catch (Exception e) {
Log.e("Error: GooglePlayServiceUtil: ", "" + e);
}
在Android 4.4及以上的手机上工作正常(当手机没有最新版本时会弹出一个警告对话框,当我点击确定谷歌播放服务更新页面出现时)但是在android 4.0中崩溃的时候我崩溃了单击“确定”。
我无法弄清楚为什么会发生这种情况。
在logcat上,
我得到一些空指针异常
at android.app.Instrumentation.execStartActivity
at android.app.Activity.startActivityForResult
at android.support.v4.app.FragmentActivity.startActivityForResult
等
那么,我怎样才能让旧的os用户立即进入更新页面?
答案 0 :(得分:1)
试试这个
if (GooglePlayServicesUtil.isUserRecoverableError(status)) {
GooglePlayServicesUtil.getErrorDialog(status, this, 10, new DialogInterface.OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
// TODO Auto-generated method stub
Runnable r = new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
onBackPressed();
}
};
r.run();
}
}).show();
} else {
Toast.makeText(this, "This device is not supported.", Toast.LENGTH_LONG).show();
finish();
}