我需要从 BroadcastReceiver / AsyncTask 中连接并上传到Google云端硬盘。但是当我尝试将 GoogeApiClient 连接到Google服务时,我得到了:
ConnectionResult{statusCode=SIGN_IN_REQUIRED, resolution=PendingIntent{XXXXX: android.os.BinderProxy@XXXXX}}
我想这是因为没有提示授权我的应用程序。
问题:有没有办法在 BroadcastReceiver 中触发该提示? ConnectionResult.startResolutionForResult()需要活动 ...
备选问题:授权我的应用的最佳方法是什么?我是否需要引导用户参加他授予GDrive访问权限的活动?
答案 0 :(得分:2)
你不应该从广播接收器做这样的事情。即使用户已正确登录,您仍需要连接到广播接收器中的Google Play服务。然而,广播接收器只持续几秒钟,任何上传都可以完成。
正确的程序IMO是让用户在应用程序启动时登录。当你的广播接收器被击中时,启动一项完成所有工作的特殊服务,如果你从谷歌播放服务收到错误,你在服务中什么都不做