我尝试通过编写GPS跟踪服务向我的应用添加GPS跟踪功能。我一直在关注如何通过Google Play服务执行此操作的Android开发人员资料,但我仍然坚持使用onConnectionFailed
方法。我试图致电startResolutionForResult
让Google Play服务处理错误。但是,这种方法要求将活动作为第一个参数传递,因为我从服务中调用它,我不确定应该做什么。
我认为我认为这一切都是错误的,并且从服务中处理这个问题的方式完全不同。
答案 0 :(得分:2)
Google Play服务的身份验证过程需要一项活动,因为它可能需要向用户显示UI。由于服务没有UI,因此您需要向活动发送消息以设置连接,然后服务可以继续。有一个很好的答案,可以在这里证明一种方法:Example: Communication between Activity and Service using Messaging
答案 1 :(得分:1)
您可以使用 Status.getResolution()并使用它启动Activity。例如:
在服务中
PendingIntent pI = status.getResolution();
mGoogleApiClient.getContext().startActivity(new Intent(mGoogleApiClient.getContext(), SomeActivity.class)
.putExtra("resolution", pI).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
活动onCreate:
PendingIntent pI = (PendingIntent) (getIntent().getParcelableExtra("resolution"));
startIntentSenderForResult(pI.getIntentSender(),1,null,0,0,0);
还添加 onActivityResult(int requestCode,int resultCode,Intent data)以接收解析结果