Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google api 为什么健身Api的google帐户权限对话没有在Api中显示,而不是在android studio中显示_Google Api_Google Oauth_Google Api Client_Google Fit_Google Fit Api - Fatal编程技术网

Google api 为什么健身Api的google帐户权限对话没有在Api中显示,而不是在android studio中显示

Google api 为什么健身Api的google帐户权限对话没有在Api中显示,而不是在android studio中显示,google-api,google-oauth,google-api-client,google-fit,google-fit-api,Google Api,Google Oauth,Google Api Client,Google Fit,Google Fit Api,这是我的代码,请检查并给我解决方案。我也有使用这两者的依赖性。 我有使用fitnessoption从用户处获取权限。 在获得许可后,我还将成为用户,然后使用readData()从google fitness api读取每日步骤数据。 我还检查了清单文件的活动识别权限 implementation 'com.google.android.gms:play-services-fitness:18.0.0' implementation 'com.google.android.gms:play-se

这是我的代码,请检查并给我解决方案。我也有使用这两者的依赖性。 我有使用fitnessoption从用户处获取权限。 在获得许可后,我还将成为用户,然后使用readData()从google fitness api读取每日步骤数据。 我还检查了清单文件的活动识别权限

implementation 'com.google.android.gms:play-services-fitness:18.0.0'

implementation 'com.google.android.gms:play-services-auth:18.0.0'

//manifest file
     
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACTIVITY_RECOGNITION"/>
    
public class HomeFragement extends Fragment{    

// FitnessOptions create

FitnessOptions fitnessOptions = FitnessOptions.builder()
                    .addDataType(DataType.TYPE_STEP_COUNT_DELTA, FitnessOptions.ACCESS_READ)
                    .addDataType(DataType.AGGREGATE_STEP_COUNT_DELTA, FitnessOptions.ACCESS_READ)
                    .build();

    GoogleSignInAccount account = GoogleSignIn.getAccountForExtension(getActivity(), fitnessOptions);

 

    if (!GoogleSignIn.hasPermissions(account, fitnessOptions)) {
                    GoogleSignIn.requestPermissions(
                            getActivity(),
                            REQUEST_OAUTH_REQUEST_CODE,
                            account,
                            fitnessOptions);
                } else {
                    subscribe();
                }

    // subscribe the google api    

    public void subscribe() {
            // To create a subscription, invoke the Recording API. As soon as the subscription is
            // active, fitness data will start recording.
            Fitness.getRecordingClient(getActivity(), GoogleSignIn.getLastSignedInAccount(getContext()))
                    .subscribe(DataType.TYPE_STEP_COUNT_CUMULATIVE)
                    .addOnCompleteListener(
                            new OnCompleteListener<Void>() {
                                @Override
                                public void onComplete(@NonNull Task<Void> task) {
                                    if (task.isSuccessful()) {
                                        Log.i(TAG, "Permission Give Successfully!");
                                    } else {
                                        Log.w(TAG, "There was a problem subscribing.", task.getException());
                                    }
                                }
                            });
        }

        // read daily step data
    
        private void readData() {
            Fitness.getHistoryClient(getActivity(), GoogleSignIn.getLastSignedInAccount(getContext()))
                    .readDailyTotal(DataType.TYPE_STEP_COUNT_DELTA)
                    .addOnSuccessListener(
                            new OnSuccessListener<DataSet>() {
                                @Override
                                public void onSuccess(DataSet dataSet) {
                                    long total =
                                            dataSet.isEmpty()
                                                    ? 0
                                                    : dataSet.getDataPoints().get(0).getValue(Field.FIELD_STEPS).asInt();
                                    txtTodayStep.setText(String.valueOf(total));
                                    txtTodayCoin.setText(String.valueOf(new DecimalFormat("#.##").format(((int)(total)/1000f))));
                                    Log.i(TAG, "Total steps: " + total);
                                }
                            })
                    .addOnFailureListener(
                            new OnFailureListener() {
                                @Override
                                public void onFailure(@NonNull Exception e) {
                                    Log.w(TAG, "There was a problem getting the step count.", e);
                                }
                            });
        }

}

    This is my code and what is problem please tell me.
implementation'com.google.android.gms:play-services-fitness:18.0.0'
实现'com.google.android.gms:play services auth:18.0.0'
//清单文件
公共类HomeFragement扩展了片段{
//适合性选项创建
FitnessOptions FitnessOptions=FitnessOptions.builder()
.addDataType(DataType.TYPE\步骤\计数\增量,FitnessOptions.ACCESS\读取)
.addDataType(DataType.AGGREGATE\u STEP\u COUNT\u DELTA,FitnessOptions.ACCESS\u READ)
.build();
GoogleSignInAccount account=GoogleSignIn.getAccountForExtension(getActivity(),fitnessOptions);
如果(!GoogleSignIn.hasPermissions(帐户、fitnessOptions)){
GoogleSignIn.requestPermissions(
getActivity(),
请求代码,
账户
适合性(可选);
}否则{
订阅();
}
//订阅谷歌api
公开无效订阅(){
//要创建订阅,请调用录制API。订阅完成后
//活动,健身数据将开始记录。
Fitness.getRecordingClient(getActivity(),GoogleSignIn.GetLastSignedAccount(getContext()))
.subscribe(数据类型.类型\步骤\计数\累积)
.addOnCompleteListener(
新的OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
if(task.issusccessful()){
Log.i(标记“权限授予成功!”);
}否则{
Log.w(标记“订阅时出现问题”,task.getException());
}
}
});
}
//读取每日步骤数据
私有void readData(){
Fitness.getHistoryClient(getActivity(),GoogleSignIn.GetLastSignedAccount(getContext()))
.readDailyTotal(数据类型.类型\步骤\计数\增量)
.addOnSuccessListener(
新OnSuccessListener(){
@凌驾
成功时的公共void(数据集){
长期总计=
dataSet.isEmpty()
? 0
:dataSet.getDataPoints().get(0).getValue(Field.Field_步骤).asInt();
txtTodayStep.setText(String.valueOf(total));
txtodaycoin.setText(String.valueOf(新的十进制格式(#.#.#.#.#.#.#.)格式((int)(total)/1000f));
Log.i(标签“总步数:”+总步数);
}
})
.addOnFailureListener(
新的OnFailureListener(){
@凌驾
public void onFailure(@NonNull异常e){
Log.w(标记“获取步数时出现问题”,e);
}
});
}
}
这是我的代码,有什么问题请告诉我。