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