【问题标题】:Google Fitness API: Accessing from Android ServiceGoogle Fitness API:从 Android 服务访问
【发布时间】:2018-03-26 12:00:09
【问题描述】:

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

【问题讨论】:

    标签: android google-fit google-fit-sdk


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

      基本上,这种方法“GooglePlayServicesUtil.getErrorDialog”在服务中不起作用。 (这才是真正的问题。为什么不呢?谁设计了这个 shXt?完全没有任何意义。) 但是如果你再检查一下,你会发现ConnectionResult中有一个方法“startResolutionForResult”。
      你可以用它来替换“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”。但它确实有效。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-07-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多