如何验证Google Play服务

时间:2014-03-14 21:18:25

标签: libgdx google-play-services

我试图解决这个问题几天,但我找不到一个关于这个问题的好例子。我想我已经创建了很好的代码示例,但我不知道在哪里/如何使用它。

关于问题:每当应用程序来自前台时,我想检查Google Play服务是否可用。所以我想使用这段代码:

static final int REQUEST_CODE_RECOVER_PLAY_SERVICES = 1001;

private boolean checkPlayServices() {
    int status = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
    if (status != ConnectionResult.SUCCESS) {
        if (GooglePlayServicesUtil.isUserRecoverableError(status)) {
            showErrorDialog(status);
        } else {
            Toast.makeText(this, "This device is not supported.",Toast.LENGTH_LONG).show();
            finish();
        }
        return false;
    }
    return true;
}

void showErrorDialog(int code) {
    GooglePlayServicesUtil.getErrorDialog(code, this,REQUEST_CODE_RECOVER_PLAY_SERVICES).show();
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  switch (requestCode) {
    case REQUEST_CODE_RECOVER_PLAY_SERVICES:
      if (resultCode == RESULT_CANCELED) {
        Toast.makeText(this, "Google Play Services must be installed.",Toast.LENGTH_SHORT).show();
        finish();
      }
      return;
  }
  super.onActivityResult(requestCode, resultCode, data);
}

现在我想用

检查服务
if (checkPlayServices()) {
    System.out.println("ok");
}

但在哪里?我试图在课程中使用扩展游戏的代码,但随后

int status = GooglePlayServicesUtil .isGooglePlayServicesAvailable(this);

路径无法找到。另一方面,当我把它放在单独的活动中时

public class AuthActivity extends Activity {
    //all previous code
}   

路径还可以。有人知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

回答:因为这是特定于Android的代码,所以必须在Android模块中使用该代码(包含Activity类),而不是在Core模块中使用(包含类扩展Game)。

原因:如果将该函数放入Core模块,则Core模块没有GooglePlayServicesUtil的库依赖关系,因此您无法引用类GooglePlayServicesUtil 。有关使用Android专用代码的更多信息,请参阅this链接。