用户更新Google Play服务时出错

时间:2014-09-25 09:20:52

标签: android api google-maps

我正在使用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用户立即进入更新页面?

1 个答案:

答案 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();
            }