使用android应用程序的Google Fit同步权限

使用android应用程序的Google Fit同步权限,android,google-fit,Android,Google Fit,我正在用android studio创建一个应用程序,我正在使用Google Fit应用程序同步这两个应用程序,以便通过Mi Fit获得一些信息。 问题是“获取权限”窗口并没有在我的手机中弹出,我不知道为什么。 这是我的权限类: package Model.Users; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.util.Log; im

我正在用android studio创建一个应用程序,我正在使用Google Fit应用程序同步这两个应用程序,以便通过Mi Fit获得一些信息。 问题是“获取权限”窗口并没有在我的手机中弹出,我不知道为什么。 这是我的权限类:

    package Model.Users;

import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.util.Log;

import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;

import com.google.android.gms.auth.api.signin.GoogleSignIn;
import com.google.android.gms.auth.api.signin.GoogleSignInOptionsExtension;
import com.google.android.gms.fitness.FitnessOptions;

import static com.google.android.gms.fitness.data.DataType.TYPE_ACTIVITY_SEGMENT;
import static com.google.android.gms.fitness.data.DataType.TYPE_CALORIES_EXPENDED;
import static com.google.android.gms.fitness.data.DataType.TYPE_DISTANCE_DELTA;
import static com.google.android.gms.fitness.data.DataType.TYPE_STEP_COUNT_DELTA;

public class Permissions {

    private AppCompatActivity app;
    final private int ALL_PERMISSIONS = 101;

    public Permissions(AppCompatActivity app) {
        this.app = app;
    }

    /**
     *
     * @throws PackageManager.NameNotFoundException
     */
    public void requestPermissions() throws PackageManager.NameNotFoundException {
        PackageInfo info = app.getPackageManager().getPackageInfo(app.getPackageName(), PackageManager.GET_PERMISSIONS);
        String[] permissions = info.requestedPermissions;//This array contains the requested permissions.

        Log.i("PERMISSIONS", "************PERMISSIONS LIST*************");

        ActivityCompat.requestPermissions(app, permissions, ALL_PERMISSIONS); /** gets all permissions from manifest! */

        // insert all permissions needed
        GoogleSignInOptionsExtension fitnessOptions =
                FitnessOptions.builder()
                        .addDataType(TYPE_STEP_COUNT_DELTA,FitnessOptions.ACCESS_READ)
                        .addDataType(TYPE_DISTANCE_DELTA, FitnessOptions.ACCESS_READ)
                        .addDataType(TYPE_CALORIES_EXPENDED,FitnessOptions.ACCESS_READ)
                        .addDataType(TYPE_ACTIVITY_SEGMENT,FitnessOptions.ACCESS_READ)
                        .build();

        if (!GoogleSignIn.hasPermissions(GoogleSignIn.getLastSignedInAccount(app), fitnessOptions)) {
            GoogleSignIn.requestPermissions( app,1, GoogleSignIn.getLastSignedInAccount(app),
                    fitnessOptions);
            Log.i("PERMISSIONS", "************PERMISSIONS REQUESTED*************");

        }
    }
}
我看到的第一个屏幕是选择google帐户: 然后我想得到这个屏幕,但我几乎从来没有:

然后弹出审批地点的最终屏幕:

我不明白为什么第二个屏幕没有显示,我必须获得这些权限才能管理和使用google fit收集的数据


谢谢。

我面临着几乎类似的问题。我有谷歌登录选项,但没有请求权限选项。你解决了你的问题吗?我面临着几乎类似的问题。我有谷歌登录选项,但没有请求权限选项。你解决问题了吗?