Fehler mit Flutter_Health_Connect Connecting to Health Connect in Android SDK - TiramisuAndroid

Forum für diejenigen, die für Android programmieren
Anonymous
 Fehler mit Flutter_Health_Connect Connecting to Health Connect in Android SDK - Tiramisu

Post by Anonymous »

Ich baue eine flatternbasierte Gesundheits -App mit Flutter_Health_Connect, um Details von Android zu erhalten, aber bevor ich meinen Anmeldung verwende (was für die meisten Anwendungen der Einstiegspunkt für die meisten Anwendungen ist), wollte ich alle Berechtigungen sammeln und dann die Anmeldeseite fortsetzen. /> Hier ist mein Beispielcode < /p>
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();

// Ensure Health Connect is installed before proceeding
bool isInstalled = await ensureHealthConnectInstalled();

if (isInstalled) {
// Request permissions before launching the app
bool permissionsGranted = await _requestPermissions();
UserSession session = UserSession();
session.savePermissions(permissionsGranted);
}

runApp(MyApp(isHealthConnectInstalled: isInstalled));
}

/// Ensures Health Connect is installed before proceeding
Future ensureHealthConnectInstalled() async {
try {
bool isAvailable = await HealthConnectFactory.isAvailable();
if (!isAvailable) {
print("Health Connect is not installed. Prompting user to install...");
await HealthConnectFactory.installHealthConnect();
return false; // App should not continue until installed
}
print("Health Connect is installed!");
return true;
} catch (err) {
print("Error checking Health Connect availability: $err");
return false;
}
}

/// Requests necessary permissions
Future _requestPermissions() async {
Map statuses = await [
Permission.activityRecognition,
Permission.sensors,
Permission.location,
].request();

final types = [
HealthDataType.STEPS,
HealthDataType.DISTANCE_WALKING_RUNNING,
HealthDataType.TOTAL_CALORIES_BURNED
];

try {
bool isAvailable = await HealthConnectFactory.isAvailable();
if (isAvailable) {
final healthConnectTypes = types.map((type) {
switch (type) {
case HealthDataType.STEPS:
return HealthConnectDataType.Steps;
case HealthDataType.DISTANCE_WALKING_RUNNING:
return HealthConnectDataType.Distance;
case HealthDataType.TOTAL_CALORIES_BURNED:
return HealthConnectDataType.TotalCaloriesBurned;
default:
throw Exception("Unsupported HealthDataType: $type");
}
}).toList();

bool granted =
await HealthConnectFactory.requestPermissions(healthConnectTypes);
if (!granted) {
print("Health Connect permissions not granted!");
return false;
}
print("Health Connect permissions granted!");
}
} catch (err) {
print("Error requesting Health Connect permissions: $err");
return false;
}

return statuses.values.every((status) => status.isGranted);
}
< /code>
Übrigens habe ich die Health Connect manuell auf dem Gerät installiert. Dies ist nicht nur nicht installiert oder umleiten mich nicht auf die Installationsseite, wenn die App fehlt, sondern es ist nicht wichtig, ob es vorhanden ist oder nicht. /> E /AndroidRuntime (24501): Fatale Ausnahme: Haupt
E /AndroidRuntime (24501): Prozess, PID: 24501
E /AndroidRuntime (24501): Java.lang.NouchMethodeRror: Keine statische Methode sdkStatus $ Standard (Landroidx/Health/Connect/Client/HealthConnectClient $ Companion; Landroid/Inhalt/Kontext; ljava/lang/string; iljava/lang/objekt;) i in der Klasse Landroidx/Gesundheit/Connect/Client/HealthConnectclient $ Begleiter; oder seine Superklassen (Deklaration von 'Androidx.Health.connect.client.HealthConnectClient $ begleit' erscheint in /data/app/~~mfqm45Hgrnts9Idpvfqmw==/-Abkli64fra26bfdm4hr_tw=/base.apks.apk. dev.duynp.flutter_health_connect.flutterhealthConnectplugin.onmethodcall (FlutterhealthConnectplugin.kt: 86)
e /androidruntime (24501): at io.flutter.plugin.common.methodchannel $ IncomingMethodcallHandler.onMessage (methodchannel.java:267)
e /androidruntime (24501): bei io.flutter. />E/AndroidRuntime(24501): at io.flutter.embedding.engine.dart.DartMessenger.lambda$dispatchMessageToQueue$0$io-flutter-embedding-engine-dart-DartMessenger(DartMessenger.java:319)
E/AndroidRuntime(24501): at io.flutter.embedding.engine.dart.dartmessenger $$ externalSyntheticlambda0.run (d8 $$ syntheticClass: 0)
e /androidruntime (24501): at android.os.handler.handleCallback (hotler.java:942)
e /androidruntime (24501): at Android.os.looper.looponce (looper.java:226)
/androidruntime (24501)
E /androidruntime (24501): at android.app.Activity thread.main (acityThread.java:8762)
e /androidruntime (24501): Bei Java.lang.Reflect.Method.invoke (einheimische Methode)
e /androidruntime (24501) (24501) (24501) bei ATROIDRORTIM (24501). com.android.internal.os.runtimeInit $ methodandAndargscaller.run (runTimeInit.java:604)
e /androidruntime (24501): bei com.android.internal.Os.zygoteinit.main (24501). PID: 24501 Sig: 9
** < /p>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post