1

我已经成功地尝试使用 SDK 示例从传感器 API(步数)中提取数据。但是,当我尝试从服务中做同样的事情时,我没有收到步数增量回调。我看到的所有示例代码总是谈论使用 Activity 的“this”值创建 GoogleApiClient,而不是使用服务的“this”值。知道是否支持通过服务访问?

4

2 回答 2

0

我已经实现了来自粘性服务的传感器和历史 API 调用。您唯一需要该活动的是在连接失败或需要登录时向用户提示。(我认为)

所以我所做的是我分别为传感器和历史函数创建了类,然后我使用本地广播,你也可以使用绑定来完成,然后onConnectionFail()我告诉活动它应该提示用户。

我对 fit-api 有其他问题,但服务部分工作正常。

于 2015-07-22T06:09:19.787 回答
0

这并不难,但需要做很多工作。

基本上,这个方法“ GooglePlayServicesUtil.getErrorDialog”在Service中是行不通的。(这才是真正的问题。为什么不呢?谁设计了这个shXt?完全没有任何意义。)但是如果你再检查一下,你会发现有一个方法“ startResolutionForResult”在ConnectionResult
你可以用它来代替“ GooglePlayServicesUtil.getErrorDialog”。

而且......对不起,这不能解决你的问题。

因为你仍然需要一个 Activity 和它的方法“ onActivityResult”。即使你可以得到一个静态的 Activity,它仍然无法工作,除非你给这个 Activity 一个自定义的“ onActivityResult”方法。

所以?使用自定义的“”方法设计一个活动onActivityResult并将其扩展到您的所有活动?... 开玩笑。

就我而言,我赋予我所有的 Activity 在其生命周期中做动态工作的能力。这就是我的活动:

public abstract class HTBaseActivity extends FragmentActivity {

public static Activity ACT = null;

public CallByActivityResult callByResult;


@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    ACT = this;

}


@Override
protected void onActivityResult(int value1, int value2, Intent intent) {
    // TODO Auto-generated method stub
    super.onActivityResult(value1, value2, intent);

    if(callByResult != null){
        callByResult.onActivityResult(value1, value2, intent);
    }
}

@Override
protected void onResume() {
    // TODO Auto-generated method stub
    super.onResume();
    ACT = this;
}

这个活动是为了别的,而不是“在服务中做健身 API”。但它确实有效。

PS CallByActivityResult是一个带有方法“ onActivityResult(int value1, int value2, Intent intent)”的接口。

于 2015-11-25T03:55:02.943 回答