我对此进行了几天的研究。我只需要应用程序中的一个简单的 TextView 区域来显示今天的步骤。 
 
我已经设法使用下面的代码进行身份验证。它弹出请求许可,并认为我选择了正确的。 
 
但我不知道如何简单地获取步数信息。我希望这只是几行代码。任何帮助将不胜感激。谢谢 
 
编辑1:我只需要获取步数。我可以想办法稍后展示它。我还有一个祝酒词来帮助我弄清楚发生了什么。 
- private void buildFitnessClient() {
 
 -     if (mClient == null) {
 
 -         mClient = new GoogleApiClient.Builder(this)
 
 -                 .addApi(Fitness.SENSORS_API)
 
 -                 .addScope(new Scope(Scopes.FITNESS_ACTIVITY_READ))
 
 -                 .addConnectionCallbacks(
 
 -                         new GoogleApiClient.ConnectionCallbacks() {
 
 -                             @Override
 
 -                             public void onConnected(Bundle bundle) {
 
 -                                 Log.i(TAG, "Connected!!!");
 
 -                                 // Now you can make calls to the Fitness APIs.
 
 -                                 Toast.makeText(getBaseContext(), "Connected!", Toast.LENGTH_LONG).show();
 
  
 
-                             }
 
  
-                             @Override
 
 -                             public void onConnectionSuspended(int i) {
 
 -                                 // If your connection to the sensor gets lost at some point,
 
 -                                 // you'll be able to determine the reason and react to it here.
 
 -                                 if (i == GoogleApiClient.ConnectionCallbacks.CAUSE_NETWORK_LOST) {
 
 -                                     Log.i(TAG, "Connection lost.  Cause: Network Lost.");
 
 -                                     Toast.makeText(getBaseContext(), "Connection lost.  Cause: Network Lost.", Toast.LENGTH_LONG).show();
 
  
-                                 } else if (i
 
 -                                         == GoogleApiClient.ConnectionCallbacks.CAUSE_SERVICE_DISCONNECTED) {
 
 -                                     Log.i(TAG,
 
 -                                             "Connection lost.  Reason: Service Disconnected");
 
 -                                 }
 
 -                             }
 
 -                         }
 
 -                 )
 
 -                 .enableAutoManage(this, 0, new GoogleApiClient.OnConnectionFailedListener() {
 
 -                     @Override
 
 -                     public void onConnectionFailed(ConnectionResult result) {
 
 -                         Log.i(TAG, "Google Play services connection failed. Cause: " +
 
 -                                 result.toString());
 
 -                         Toast.makeText(getBaseContext(), "Google Play services connection failed. Cause: " +
 
 -                                 result.toString(), Toast.LENGTH_LONG).show();
 
  
-                     }
 
 -                 })
 
 -                 .build();
 
 -     }
 
 - }
 
  复制代码 
回答 
查看 Google 的官方文档,了解如何从 Fit 读取数据: 
- // Setting a start and end date using a range of 1 week before this moment.
 
 - Calendar cal = Calendar.getInstance();
 
 - Date now = new Date();
 
 - cal.setTime(now);
 
 - long endTime = cal.getTimeInMillis();
 
 - cal.add(Calendar.WEEK_OF_YEAR, -1);
 
 - long startTime = cal.getTimeInMillis();
 
  
- java.text.DateFormat dateFormat = getDateInstance();
 
 - Log.i(TAG, "Range Start: " + dateFormat.format(startTime));
 
 - Log.i(TAG, "Range End: " + dateFormat.format(endTime));
 
  
- DataReadRequest readRequest = new DataReadRequest.Builder()
 
 -         // The data request can specify multiple data types to return, effectively
 
 -         // combining multiple data queries into one call.
 
 -         // In this example, it's very unlikely that the request is for several hundred
 
 -         // datapoints each consisting of a few steps and a timestamp.  The more likely
 
 -         // scenario is wanting to see how many steps were walked per day, for 7 days.
 
 -         .aggregate(DataType.TYPE_STEP_COUNT_DELTA, DataType.AGGREGATE_STEP_COUNT_DELTA)
 
 -         // Analogous to a "Group By" in SQL, defines how data should be aggregated.
 
 -         // bucketByTime allows for a time span, whereas bucketBySession would allow
 
 -         // bucketing by "sessions", which would need to be defined in code.
 
 -         .bucketByTime(1, TimeUnit.DAYS)
 
 -         .setTimeRange(startTime, endTime, TimeUnit.MILLISECONDS)
 
 -         .build();
 
  复制代码 
GitHub 上的 History API 示例应用程序: 
 
查看 GitHub 上的示例项目。 
 
 
 
 |