Java 无法从Google Fit(订阅)获取健身记录客户端

Java 无法从Google Fit(订阅)获取健身记录客户端,java,android,api,google-fit,Java,Android,Api,Google Fit,我正在开发一个应用程序,它使用android Google Fit API来记录和检索数据。我已经阅读了文档,因此尝试使用Fitness.getRecordingClient建立订阅。执行此操作时,有两个主要方法(侦听器),一个是onSuccess,另一个是onFailure。我在调试模式下运行应用程序,它从未进入onSuccess或onFailure状态。它没有给我任何错误。所以我很难弄清楚到底发生了什么。如果有人有使用android的GoogleFitAPI的经验,我将不胜感激。谢谢 goo

我正在开发一个应用程序,它使用android Google Fit API来记录和检索数据。我已经阅读了文档,因此尝试使用Fitness.getRecordingClient建立订阅。执行此操作时,有两个主要方法(侦听器),一个是onSuccess,另一个是onFailure。我在调试模式下运行应用程序,它从未进入onSuccess或onFailure状态。它没有给我任何错误。所以我很难弄清楚到底发生了什么。如果有人有使用android的GoogleFitAPI的经验,我将不胜感激。谢谢 google fit文档 这是StatsFragment代码

public class StatsFragment extends Fragment  {
    private static final int GOOGLE_FIT_PERMISSIONS_REQUEST_CODE = 20;
    private static final String LOG_TAG = "STATS";

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
                             @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_stats, container, false);

        //declaring the fitnessOption client and type of data to be access
        FitnessOptions fitnessOptions = FitnessOptions.builder()
                .addDataType(DataType.TYPE_STEP_COUNT_DELTA, FitnessOptions.ACCESS_READ)
                .addDataType(DataType.AGGREGATE_STEP_COUNT_DELTA, FitnessOptions.ACCESS_READ)
                .build();

        //checking for user permisssion
        if (!GoogleSignIn.hasPermissions(GoogleSignIn.getLastSignedInAccount(getActivity()), fitnessOptions)) {
            GoogleSignIn.requestPermissions(
                    this, // your activity
                    GOOGLE_FIT_PERMISSIONS_REQUEST_CODE,
                    GoogleSignIn.getLastSignedInAccount(getActivity()),
                    fitnessOptions);
        } else {
            Fitness.getRecordingClient(getActivity(), GoogleSignIn.getLastSignedInAccount(getActivity()))
                    .listSubscriptions(DataType.TYPE_STEP_COUNT_CUMULATIVE)
                    .addOnSuccessListener(new OnSuccessListener<List<Subscription>>() {
                        @Override
                        public void onSuccess(List<Subscription> subscriptions) {
                            for (Subscription sc : subscriptions) {
                                DataType dt = sc.getDataType();
                                Log.i(LOG_TAG, "Active subscription for data type: " + dt.getName());
                            }
                        }
                    });
        }

        return view;
    }
}
公共类StatsFragment扩展了片段{
私有静态final int GOOGLE\u FIT\u PERMISSIONS\u REQUEST\u CODE=20;
私有静态最终字符串LOG_TAG=“STATS”;
@可空
@凌驾
创建视图时的公共视图(@NonNull LayoutInflater充气机,@null可查看组容器,
@可为空的捆绑包savedInstanceState){
视图=充气机。充气(R.layout.fragment\u stats,container,false);
//声明fitnessOption客户端和要访问的数据类型
FitnessOptions FitnessOptions=FitnessOptions.builder()
.addDataType(DataType.TYPE\步骤\计数\增量,FitnessOptions.ACCESS\读取)
.addDataType(DataType.AGGREGATE\u STEP\u COUNT\u DELTA,FitnessOptions.ACCESS\u READ)
.build();
//检查用户权限
如果(!GoogleSignIn.hasPermissions(GoogleSignIn.GetLastSignedAccount(getActivity()),fitnessOptions)){
GoogleSignIn.requestPermissions(
这是你的活动
GOOGLE\u FIT\u权限\u请求\u代码,
GoogleSignIn.GetLastSignedAccount(getActivity()),
适合性(可选);
}否则{
Fitness.getRecordingClient(getActivity(),GoogleSignIn.GetLastSignedAccount(getActivity()))
.listSubscriptions(数据类型.类型\步骤\计数\累积)
.addOnSuccessListener(新的OnSuccessListener(){
@凌驾
成功时公共作废(列表订阅){
对于订阅(sc:订阅){
数据类型dt=sc.getDataType();
Log.i(Log_标记,“数据类型的活动订阅:”+dt.getName());
}
}
});
}
返回视图;
}
}