我想使用Play游戏服务,因此我将GoogleApiClient与Games.API一起使用并调用方法connect()。但是它总是在onConnectionFailed()中给出错误RESOLUTION_REQUIRED。
let m=3 and n=4 in
let a=ref 0 and b=ref 0 in
if(m > n)
then
(
a:=n;
b:=m;
)
else
(
a:=m;
b:=n;
);
Printf.printf "a=%d b=%d\n" !a !b;;
但如果我使用Auth.API而不是Games.API,连接成功并调用方法onConnected()。
public class MainActivity extends Activity implements
ConnectionCallbacks,
OnConnectionFailedListener {
GoogleApiClient googleApiClient;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
googleApiClient = new GoogleApiClient.Builder(this)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(Games.API).addScope(Games.SCOPE_GAMES)
.build(); }
@Override
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
//ConnectionResult{statusCode=RESOLUTION_REQUIRED, resolution=PendingIntent{dd739ef: android.os.BinderProxy@624acfc}, message=null}
}
我使用模拟器,模拟器中的播放服务版本是10.0,所以我也在gradle build 10.0中设置版本
public class MainActivity extends Activity implements
ConnectionCallbacks,
OnConnectionFailedListener {
GoogleApiClient googleApiClient;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
googleApiClient = new GoogleApiClient.Builder(this)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(Auth.GOOGLE_SIGN_IN_API)
.build();
}
@Override
public void onConnected(Bundle connectionHint) {
//Success
}
我在Google Play fails to connect, statusCode=RESOLUTION_REQUIRED发现了同样的问题,但作者没有得到任何答案。
答案 0 :(得分:0)
基于ConnectionResult,错误代码为RESOLUTION_REQUIRED
:
完成连接需要某种形式的解决方案。将以
startResolutionForResult(Activity, int)
开始提供解决方案。如果返回的结果为RESULT_OK
,则进一步尝试连接应该完成或继续下一个需要解决的问题。
除此之外,您还可以查看如何处理连接失败,如Manually managed connections中所述。如上所述,
当您的应用收到
onConnectionFailed()
}回调电话时,您应该在提供的hasResolution()
对象上拨打ConnectionResult
。如果它返回true,则您的应用可以通过调用ConnectionResult
对象上的startResolutionForResult()
来请求用户立即采取措施来解决错误。在这种情况下,startResolutionForResult()
方法与startActivityForResult()
的行为相同,并启动适合上下文的活动,以帮助用户解决错误。