إنّ واجهات برمجة تطبيقات Google Fit، بما في ذلك Google Fit REST API، لن تعود متاحة بعد 30 حزيران (يونيو) 2025. اعتبارًا من 1 أيار (مايو) 2024، لن يتمكّن المطوّرون من الاشتراك لاستخدام واجهات برمجة التطبيقات هذه.
للحصول على تعليمات حول واجهة برمجة التطبيقات أو المنصة المطلوب نقل البيانات إليها، انتقِل إلى دليل نقل البيانات إلى Health Connect. للمقارنة بين Health Connect وواجهات برمجة تطبيقات Google Fit وواجهات برمجة تطبيقات الويب Fitbit، يُرجى الانتقال إلى دليل المقارنة في Health Connect.
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
يوضح هذا المثال كيفية إنشاء عميل Fitness API.
أنشئ عميل واجهة برمجة التطبيقات على النحو التالي:
إنشاء مثيل FitnessOptions مع الإعلان عن
أنواع البيانات ونوع الوصول (قراءة و/أو كتابة) تطبيقك
يحتاج إلى:
val fitnessOptions = FitnessOptions.builder()
.addDataType(DataType.TYPE_STEP_COUNT_DELTA, FitnessOptions.ACCESS_READ)
.addDataType(DataType.AGGREGATE_STEP_COUNT_DELTA, FitnessOptions.ACCESS_READ)
.build()
الحصول على نسخة افتراضية للعنصر Account لاستخدامه مع واجهة برمجة التطبيقات:
val account = GoogleSignIn.getAccountForExtension(this, fitnessOptions)
التحقق مما إذا كان المستخدم قد سبق له منح حق الوصول اللازم إلى البيانات، وما إذا
لا، ابدأ تدفق التفويض:
if (!GoogleSignIn.hasPermissions(account, fitnessOptions)) {
GoogleSignIn.requestPermissions(
this, // your activity
GOOGLE_FIT_PERMISSIONS_REQUEST_CODE, // e.g. 1
account,
fitnessOptions)
} else {
accessGoogleFit()
}
إذا كان تدفق التفويض مطلوبًا، تعامل مع رد المستخدم:
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
when (resultCode) {
Activity.RESULT_OK -> when (requestCode) {
GOOGLE_FIT_PERMISSIONS_REQUEST_CODE -> accessGoogleFit()
else -> {
// Result wasn't from Google Fit
}
}
else -> {
// Permission not granted
}
}
}
بعد أن يسمح المستخدم بالوصول إلى البيانات المطلوبة، يمكنك إنشاء
عميل (على سبيل المثال، HistoryClient لقراءة و/أو كتابة سجلّ اللياقة البدنية
البيانات) استنادًا إلى الغرض من التطبيق واحتياجاته:
private fun accessGoogleFit() {
val end = LocalDateTime.now()
val start = end.minusYears(1)
val endSeconds = end.atZone(ZoneId.systemDefault()).toEpochSecond()
val startSeconds = start.atZone(ZoneId.systemDefault()).toEpochSecond()
val readRequest = DataReadRequest.Builder()
.aggregate(DataType.AGGREGATE_STEP_COUNT_DELTA)
.setTimeRange(startSeconds, endSeconds, TimeUnit.SECONDS)
.bucketByTime(1, TimeUnit.DAYS)
.build()
val account = GoogleSignIn.getAccountForExtension(this, fitnessOptions)
Fitness.getHistoryClient(this, account)
.readData(readRequest)
.addOnSuccessListener({ response ->
// Use response data here
Log.i(TAG, "OnSuccess()")
})
.addOnFailureListener({ e -> Log.d(TAG, "OnFailure()", e) })
}
تاريخ التعديل الأخير: 2024-08-21 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","easyToUnderstand","thumb-up"],["ساعَدني المحتوى في حلّ مشكلتي.","solvedMyProblem","thumb-up"],["غير ذلك","otherUp","thumb-up"]],[["لا يحتوي على المعلومات التي أحتاج إليها.","missingTheInformationINeed","thumb-down"],["الخطوات معقدة للغاية / كثيرة جدًا.","tooComplicatedTooManySteps","thumb-down"],["المحتوى قديم.","outOfDate","thumb-down"],["ثمة مشكلة في الترجمة.","translationIssue","thumb-down"],["مشكلة في العيّنات / التعليمات البرمجية","samplesCodeIssue","thumb-down"],["غير ذلك","otherDown","thumb-down"]],["تاريخ التعديل الأخير: 2024-08-21 (حسب التوقيت العالمي المتفَّق عليه)"],[[["This guide demonstrates how to build a Fitness API client in Android to read aggregate step count data."],["It outlines the process of creating a `FitnessOptions` instance to define the data types and access permissions required."],["Users will be prompted to grant necessary permissions during the Google Sign-In authorization flow."],["Upon authorization, the code demonstrates how to access the Google Fit HistoryClient to retrieve and utilize the step count data."],["The example showcases requesting aggregate step data over the past year, bucketed by day, without needing specific Android permissions."]]],[]]