Google 登录 "Choose an account to continue" 循环
Google sign in "Choose an account to continue" loop
我正在尝试使用我的 Flutter 应用程序实现以下包:
https://pub.dev/packages/permission_handler
https://pub.dev/packages/fit_kit
我通过编写以下两个函数来完成此操作:
Future<void> checkPermissions() async {
var status = await Permission.activityRecognition.status;
if (status.isUndetermined || status.isDenied) {
Permission.activityRecognition.request();
} else if (status.isPermanentlyDenied) {
openAppSettings();
}
}
Future<void> read() async {
results.clear();
await checkPermissions();
for (DataType type in [DataType.STEP_COUNT, DataType.DISTANCE]) {
try {
results[type] = await FitKit.read(
type,
dateFrom: _weekBeginning,
dateTo: _now,
);
} on UnsupportedException catch (e) {
results[e.dataType] = [];
}
}
dailyStepBuffer = 0;
dailyDistanceBuffer = 0;
for(FitData dataPoint in results[DataType.STEP_COUNT]){
print(dataPoint);
dailyStepBuffer += dataPoint.value.round();
}
for(FitData dataPoint in results[DataType.DISTANCE]){
print(dataPoint);
dailyDistanceBuffer += dataPoint.value.round();
}
setState(() {
dailySteps = dailyStepBuffer;
dailyDistance = dailyDistanceBuffer;
});
}
函数和包在 iOS 上按预期工作,但出于某种原因,每当我在 Android 设备上调用 read() 时,it shows me this sign in screen,以及当我单击我的帐户,它什么也没做,我收到错误消息:
E/flutter ( 8211): [ERROR:flutter/lib/ui/ui_dart_state.cc(166)] Unhandled Exception: PlatformException(FitKit, User denied permission access, null)
我已经使用我的 SHA-1 指纹获得了 OAuth 2.0 客户端 ID,将 <uses-permission android:name="android.permission.ACTIVITY_RECOGNITION"/>
添加到我的 AndroidManifest.xml 文件并将以下内容添加到我的 build.gradle:
implementation 'com.google.android.gms:play-services-fitness:19.0.0'
implementation 'com.google.android.gms:play-services-auth:18.1.0'
不幸的是,其中 none 似乎已经解决了问题。如果有人能帮我解决这个问题,我将不胜感激,谢谢!
您可以尝试 flutter clean
并检查这种情况是否持续存在吗?
FitKit class 似乎有一个 requestPermissions
方法。将其与 FitKit.hasPermissions
一起使用以确保授予必要的权限。
事实证明,由于某种原因,我的包名称和应用程序 ID 不同,因此在获取我的 OAuth 2.0 客户端 ID 时输入应用程序 ID 而不是包名称解决了这个问题。
我正在尝试使用我的 Flutter 应用程序实现以下包:
https://pub.dev/packages/permission_handler
https://pub.dev/packages/fit_kit
我通过编写以下两个函数来完成此操作:
Future<void> checkPermissions() async {
var status = await Permission.activityRecognition.status;
if (status.isUndetermined || status.isDenied) {
Permission.activityRecognition.request();
} else if (status.isPermanentlyDenied) {
openAppSettings();
}
}
Future<void> read() async {
results.clear();
await checkPermissions();
for (DataType type in [DataType.STEP_COUNT, DataType.DISTANCE]) {
try {
results[type] = await FitKit.read(
type,
dateFrom: _weekBeginning,
dateTo: _now,
);
} on UnsupportedException catch (e) {
results[e.dataType] = [];
}
}
dailyStepBuffer = 0;
dailyDistanceBuffer = 0;
for(FitData dataPoint in results[DataType.STEP_COUNT]){
print(dataPoint);
dailyStepBuffer += dataPoint.value.round();
}
for(FitData dataPoint in results[DataType.DISTANCE]){
print(dataPoint);
dailyDistanceBuffer += dataPoint.value.round();
}
setState(() {
dailySteps = dailyStepBuffer;
dailyDistance = dailyDistanceBuffer;
});
}
函数和包在 iOS 上按预期工作,但出于某种原因,每当我在 Android 设备上调用 read() 时,it shows me this sign in screen,以及当我单击我的帐户,它什么也没做,我收到错误消息:
E/flutter ( 8211): [ERROR:flutter/lib/ui/ui_dart_state.cc(166)] Unhandled Exception: PlatformException(FitKit, User denied permission access, null)
我已经使用我的 SHA-1 指纹获得了 OAuth 2.0 客户端 ID,将 <uses-permission android:name="android.permission.ACTIVITY_RECOGNITION"/>
添加到我的 AndroidManifest.xml 文件并将以下内容添加到我的 build.gradle:
implementation 'com.google.android.gms:play-services-fitness:19.0.0'
implementation 'com.google.android.gms:play-services-auth:18.1.0'
不幸的是,其中 none 似乎已经解决了问题。如果有人能帮我解决这个问题,我将不胜感激,谢谢!
您可以尝试 flutter clean
并检查这种情况是否持续存在吗?
FitKit class 似乎有一个 requestPermissions
方法。将其与 FitKit.hasPermissions
一起使用以确保授予必要的权限。
事实证明,由于某种原因,我的包名称和应用程序 ID 不同,因此在获取我的 OAuth 2.0 客户端 ID 时输入应用程序 ID 而不是包名称解决了这个问题。