Je ne parviens pas à me connecter aux services de jeux Google Play dans un émulateur natif. Toutefois, la même API fonctionne dans Bluestacks.Services de jeu Google Play + émulateur
Jusqu'à présent, l'application demande une liste des réalisations de l'utilisateur via Games.Achievements.getAchievementsIntent. Ces succès sont affichés avec succès dans Bluestacks, cependant, l'écran de l'émulateur natif reste vide.
Pour être honnête, cela a été une surprise lorsque Bluestacks a affiché les réalisations de l'utilisateur (comme illustré ci-dessous) car je n'avais pas implémenté de logique de présentation.
Je construis des dépendances avec services Google Play 9.6.1:
compile 'com.google.android.gms:play-services-games:9.6.1'
Emulator est en cours d'exécution d'une image système avec l'API 24 + API Google
J'utilise une instance gérés automatiquement de GoogleApiClient qui tente de se connecter mais échoue ensuite. J'ai essayé de nombreuses corrections en vain.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mGoogleApiClient = new GoogleApiClient.Builder(this)
.enableAutoManage(this,
this)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(Games.API)
.addScope(Games.SCOPE_GAMES)
.build();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Log.d("onActivityResult", "resultCode = " + resultCode);
if (resultCode == GamesActivityResultCodes.RESULT_RECONNECT_REQUIRED) {
mGoogleApiClient.connect();
}
}
@Override
public void onConnected(@Nullable Bundle bundle) {
Log.d("onConnected", "onConnected");
startActivityForResult(Games.Achievements.getAchievementsIntent(mGoogleApiClient), MY_REQ_CODE);
}
@Override
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
Log.d("onConnectionFailed", "onConnectionFailed");
mGoogleApiClient.connect();
}
Résultat dans Android Moniteur:
Connected to process 7907 on device Nexus_5X_API_24_GApps [emulator-5554]
W/System: ClassLoader referenced unknown path: /data/app/goc.dma.cprach.gameofchairs-1/lib/x86
W/PopupManager: You have not specified a View to use as content view for popups. Falling back to the Activity content view. Note that this may not work as expected in multi-screen environments
D/AutoManageHelper: starting AutoManage for client 0 false false
D/onStart: onStart
D/AutoManageHelper: onStart true {[email protected]}
[ 10-20 03:00:11.990 1490: 1511 D/ ]
HostConnection::get() New Host Connection established 0x8c3f9680, tid 1511
W/gralloc_ranchu: Gralloc pipe failed
[ 10-20 03:00:12.089 7907: 7907 D/ ]
HostConnection::get() New Host Connection established 0xa438dac0, tid 7907
I/OpenGLRenderer: Initialized EGL, version 1.4
D/OpenGLRenderer: Swap behavior 1
D/onConnectionFailed: onConnectionFailed
D/AutoManageHelper: beginFailureResolution for ConnectionResult{statusCode=RESOLUTION_REQUIRED, resolution=PendingIntent{20c0bc3: [email protected]}, message=null}
D/onActivityResult: resultCode = 0