我们正在为我们的游戏(Epic Swords)添加Google Play游戏服务成就。我们正在进行最终测试,它的工作原理除了我曾预料到解锁的成就会通过g +以某种方式显示或发布。我没有看到这种共享发生。
Google的文档暗示这些是共享的,例如“请与Google一起分享您与朋友分享您的分数和成就”http://goo.gl/V3Y41以及其他各个地方,尽管对这些内容的分享方式含糊不清。
Q1:解锁后的游戏服务成就是否通过g +?
自动显示Q2:如果是,那么我们在测试这些问题时是否做错了什么?
问题3:如果没有......那么,为什么要使用播放服务来实现成就而不是自己动手?执行我们自己的实现会更简单,更可靠(由于将状态与google的云同步,因此存在很多复杂性,更不用说客户代码中的一些有趣的错误了; - )
背景:我们已发布Google Play游戏服务。一切都在游戏中正常运行,并且谷歌正在共享/检索状态。登录游戏服务时,我选择了公众对游戏进度的可见性。
顺便说一句,当成就使用常规共享API http://goo.gl/L70sY解锁时,我们可以添加明确的g +共享...但如果我们必须这样做,那么为什么要使用播放服务成就呢?
答案 0 :(得分:4)
感谢ianhanniballake的帮助,我正在添加此内容以澄清答案(例如成就可以自动发布)并总结我们在添加此功能时所学到的内容。
希望Google员工可以查看我们的Pro / Con,因为使用1.0 SDK很难推荐API,但是通过改进它会很有价值。
自动分享Google Play服务成就(截至7/13 SDK):
根据我们的经验:使用Google Play服务的Pro / Con成就:
<强>临强>:
<强> N 强>:
推荐:如果您认为Google会通过g +显示成就,那就是一个很棒的功能,并解释了上面的大部分“Con”。但是,如果成就仍然没有得到共享,那么使用谷歌的API就不那么可靠,而且比推出我们自己的客户端实施工作要多得多。
警告:如果您使用ImageManager,截至2013年7月15日的Google Play游戏服务似乎会出现间歇性崩溃错误。请参阅ClassCastException: com.google.android.gms.common.images.e 我们已切换到在APK中捆绑解锁图片,不再使用ImageManager
这是我们现在不推荐使用的代码,用于在用户解锁成就时检索位图:
Uri unlockedUri = achievement.getUnlockedImageUri();
if (unlockedUri != null) {
ImageManager im = ImageManager.create(context);
// Warning -- loadImage may silently skip call back if called too soon after achievement load
im.loadImage(new ImageManager.OnImageLoadedListener() {
@Override public void onImageLoaded(Uri arg0, Drawable drawable) {
// Attempt to convert the Drawable to a sharable image; if it fails we'll post text only
Bitmap bitmap = null;
if (drawable instanceof BitmapDrawable) {
bitmap = ((BitmapDrawable) drawable).getBitmap();
} else {
log.warn("not BitmapDrawable ", drawable);
}
listener.onBitmapLoaded(bitmap);
}
}, unlockedUri);
} else {
log.debug("no unlockedImageUri");
listener.onBitmapLoaded(null);
}
google没有提供自动g +共享的一个好处是,当你不得不推出自己的共享时,除了g +之外你还可以为其他服务做这件事。例如。我们也提供分享解锁的成就到twitter。但是反过来说,这也是为什么谷歌应该在g +上做出社交成就的一个很好的理由......开发人员很懒惰,这将确保很多游戏的社交成就都在g +上; - )
答案 1 :(得分:1)
没有Android应用可以自动发布到Google+ - 您必须通过传统的分享方式或通过您提到的互动式帖子API浏览Google+应用。有App Activities可以由应用程序创建,并通过用户的Apps page通过其个人资料查看(然后由用户从那里共享)。但是,App活动目前尚未整合到Google Play游戏服务中。这并不是说它不会在任何时候神奇地发生(并且,因为它是服务器端的变化,可能会自动发生,因为所有游戏都已经请求创建游戏活动的许可(目前没有))。
成就,如Google Play Game Service main page所述,“鼓励用户以全新且有趣的方式探索您的游戏”,当然,确保在所有支持Google Play的游戏中提供一致的体验。这对您或您的用户来说是否足够重要可能会随着时间而变化,但预先提供完整的体验(因为那些愿意通过Google+登录的人可能会期望)可以提供更好的用户体验。