واجهة JavaScript bridge API
Health Connect
قراءة وكتابة الخطوات والمسافة والسعرات ومعدل ضربات القلب والنوم والوزن والتمارين عبر Health Connect في Android، للأنواع التي حُددت عند الإنشاء فقط.
AppMint.health دالة مساعدة (helper)#
AppMint.health.isAvailable() / requestPermissions() / read() / write() / openHealthConnect()
مثال
يقرأ ويكتب بيانات صحة المستخدم عبر Health Connect: الخطوات، المسافة، السعرات النشطة، معدل ضربات القلب، النوم، الوزن وجلسات التمرين. فعّل بيانات الصحة (Health Connect) في خطوة الوصول بالمعالج وحدد الأنواع وما إذا كان التطبيق يقرأ كلًا منها أو يكتبه - فقط هذه يمكن طلبها.
يعيد: كل طريقة تعيد Promise. isAvailable() ← {ok: true, available, status, read, write} (status: available، not_installed، update_required، unsupported = Android أقدم من 8.0، disabled = الخيار معطّل). والبقية ← {ok: true, …} أو {ok: false, code, message} مع code disabled، unsupported، not_installed، update_required، not_declared (نوع غير محدد في المعالج)، permission (لم يمنحه المستخدم)، bad-input، blocked (صفحة من موقع آخر)، failed. يتطلب: خيار المعالج، وAndroid 8.0+، وHealth Connect (مدمج في Android 14+، وتطبيق من Play قبل ذلك).
الأنواع: steps، distance، calories، heartRate، sleep، weight، exercise. الأوقات بالمللي ثانية (Date.now())، أو كائنات Date أو سلاسل ISO؛ والإجابات بسلاسل ISO.
تحقق، ثم اطلب:
async function connectHealth() {
if (!(window.AppMint && AppMint.health)) return false; // browser or option off
var s = await AppMint.health.isAvailable();
if (s.status === 'not_installed') { await AppMint.health.openHealthConnect(); return false; }
if (!s.available) return false;
var r = await AppMint.health.requestPermissions({ read: ['steps', 'heartRate'], write: ['weight'] });
return r.ok && r.denied.read.length === 0;
}خطوات اليوم (المجاميع مع aggregate: true، والسجلات نفسها بدونه):
async function stepsToday() {
var start = new Date(); start.setHours(0, 0, 0, 0);
var r = await AppMint.health.read('steps', { start: start, end: new Date(), aggregate: true });
if (!r.ok) { console.warn(r.code, r.message); return 0; }
return r.aggregate.count;
}
async function lastNightHeartRate() {
var end = Date.now(), start = end - 12 * 3600 * 1000;
var r = await AppMint.health.read('heartRate', { start: start, end: end });
// r.records = [{start, end, id, samples: [{time, bpm}]}]
return r.ok ? r.records.flatMap(function (x) { return x.samples; }) : [];
}الكتابة - سجل واحد أو مصفوفة:
await AppMint.health.write('weight', { time: Date.now(), kilograms: 72.4 });
await AppMint.health.write('exercise', [{
start: Date.now() - 45 * 60000, end: Date.now(), exerciseType: 'running', title: 'Evening run'
}]);
await AppMint.health.write('steps', { start: Date.now() - 3600000, end: Date.now(), count: 4200 });حقول السجل: steps {start, end, count} · distance {start, end, meters} · calories {start, end, kilocalories} · heartRate {start, end, samples: [{time, bpm}]} · sleep {start, end, title?, stages?: [{start, end, stage}]} (awake، sleeping، out_of_bed، light، deep، rem) · weight {time, kilograms} · exercise {start, end, exerciseType, title?} (أسماء Health Connect مثل running، walking، biking، swimming_pool، yoga، strength_training، other_workout). المجاميع: steps {count}، distance {meters}، calories {kilocalories}، heartRate {avg, min, max}، sleep / exercise {minutes}، weight {avg, min, max} (كغ).
ملاحظات: يعرض Health Connect سياسة الخصوصية الخاصة بك من شاشة الأذونات - العنوان من خطوة الإنهاء، أو السياسة المولَّدة. قبل النشر على Google Play، املأ محتوى التطبيق ← تطبيقات الصحة في Play Console بالأنواع نفسها من البيانات وسبب حاجة التطبيق إلى كل منها؛ فـ Play تراجع أذونات الصحة. يمنح Health Connect التطبيق آخر 30 يومًا من السجل قبل أول منح للإذن. الطرق الخام خلفه (healthIsAvailable، healthRequestPermissions، healthRead، healthWrite، healthOpen) تأخذ نص JSON ومعرّف رد نداء - استخدم المساعد.
healthIsAvailable الجسر (bridge)#
window.WebToApk.healthIsAvailable(callbackId: String)
حالة Health Connect لهذا التطبيق؛ ويعيد [callbackId] مع `{available, status, read, write}`.
مثال
موثَّق مع AppMint.health - والمثال هناك يعرض هذا أيضًا.
يقرأ ويكتب بيانات صحة المستخدم عبر Health Connect: الخطوات، المسافة، السعرات النشطة، معدل ضربات القلب، النوم، الوزن وجلسات التمرين. فعّل بيانات الصحة (Health Connect) في خطوة الوصول بالمعالج وحدد الأنواع وما إذا كان التطبيق يقرأ كلًا منها أو يكتبه - فقط هذه يمكن طلبها.
يعيد: كل طريقة تعيد Promise. isAvailable() ← {ok: true, available, status, read, write} (status: available، not_installed، update_required، unsupported = Android أقدم من 8.0، disabled = الخيار معطّل). والبقية ← {ok: true, …} أو {ok: false, code, message} مع code disabled، unsupported، not_installed، update_required، not_declared (نوع غير محدد في المعالج)، permission (لم يمنحه المستخدم)، bad-input، blocked (صفحة من موقع آخر)، failed. يتطلب: خيار المعالج، وAndroid 8.0+، وHealth Connect (مدمج في Android 14+، وتطبيق من Play قبل ذلك).
الأنواع: steps، distance، calories، heartRate، sleep، weight، exercise. الأوقات بالمللي ثانية (Date.now())، أو كائنات Date أو سلاسل ISO؛ والإجابات بسلاسل ISO.
تحقق، ثم اطلب:
async function connectHealth() {
if (!(window.AppMint && AppMint.health)) return false; // browser or option off
var s = await AppMint.health.isAvailable();
if (s.status === 'not_installed') { await AppMint.health.openHealthConnect(); return false; }
if (!s.available) return false;
var r = await AppMint.health.requestPermissions({ read: ['steps', 'heartRate'], write: ['weight'] });
return r.ok && r.denied.read.length === 0;
}خطوات اليوم (المجاميع مع aggregate: true، والسجلات نفسها بدونه):
async function stepsToday() {
var start = new Date(); start.setHours(0, 0, 0, 0);
var r = await AppMint.health.read('steps', { start: start, end: new Date(), aggregate: true });
if (!r.ok) { console.warn(r.code, r.message); return 0; }
return r.aggregate.count;
}
async function lastNightHeartRate() {
var end = Date.now(), start = end - 12 * 3600 * 1000;
var r = await AppMint.health.read('heartRate', { start: start, end: end });
// r.records = [{start, end, id, samples: [{time, bpm}]}]
return r.ok ? r.records.flatMap(function (x) { return x.samples; }) : [];
}الكتابة - سجل واحد أو مصفوفة:
await AppMint.health.write('weight', { time: Date.now(), kilograms: 72.4 });
await AppMint.health.write('exercise', [{
start: Date.now() - 45 * 60000, end: Date.now(), exerciseType: 'running', title: 'Evening run'
}]);
await AppMint.health.write('steps', { start: Date.now() - 3600000, end: Date.now(), count: 4200 });حقول السجل: steps {start, end, count} · distance {start, end, meters} · calories {start, end, kilocalories} · heartRate {start, end, samples: [{time, bpm}]} · sleep {start, end, title?, stages?: [{start, end, stage}]} (awake، sleeping، out_of_bed، light، deep، rem) · weight {time, kilograms} · exercise {start, end, exerciseType, title?} (أسماء Health Connect مثل running، walking، biking، swimming_pool، yoga، strength_training، other_workout). المجاميع: steps {count}، distance {meters}، calories {kilocalories}، heartRate {avg, min, max}، sleep / exercise {minutes}، weight {avg, min, max} (كغ).
ملاحظات: يعرض Health Connect سياسة الخصوصية الخاصة بك من شاشة الأذونات - العنوان من خطوة الإنهاء، أو السياسة المولَّدة. قبل النشر على Google Play، املأ محتوى التطبيق ← تطبيقات الصحة في Play Console بالأنواع نفسها من البيانات وسبب حاجة التطبيق إلى كل منها؛ فـ Play تراجع أذونات الصحة. يمنح Health Connect التطبيق آخر 30 يومًا من السجل قبل أول منح للإذن. الطرق الخام خلفه (healthIsAvailable، healthRequestPermissions، healthRead، healthWrite، healthOpen) تأخذ نص JSON ومعرّف رد نداء - استخدم المساعد.
healthOpen الجسر (bridge)#
window.WebToApk.healthOpen(callbackId: String)
يفتح Health Connect، أو صفحته في Play Store إذا لم يكن مثبتًا.
مثال
موثَّق مع AppMint.health - والمثال هناك يعرض هذا أيضًا.
يقرأ ويكتب بيانات صحة المستخدم عبر Health Connect: الخطوات، المسافة، السعرات النشطة، معدل ضربات القلب، النوم، الوزن وجلسات التمرين. فعّل بيانات الصحة (Health Connect) في خطوة الوصول بالمعالج وحدد الأنواع وما إذا كان التطبيق يقرأ كلًا منها أو يكتبه - فقط هذه يمكن طلبها.
يعيد: كل طريقة تعيد Promise. isAvailable() ← {ok: true, available, status, read, write} (status: available، not_installed، update_required، unsupported = Android أقدم من 8.0، disabled = الخيار معطّل). والبقية ← {ok: true, …} أو {ok: false, code, message} مع code disabled، unsupported، not_installed، update_required، not_declared (نوع غير محدد في المعالج)، permission (لم يمنحه المستخدم)، bad-input، blocked (صفحة من موقع آخر)، failed. يتطلب: خيار المعالج، وAndroid 8.0+، وHealth Connect (مدمج في Android 14+، وتطبيق من Play قبل ذلك).
الأنواع: steps، distance، calories، heartRate، sleep، weight، exercise. الأوقات بالمللي ثانية (Date.now())، أو كائنات Date أو سلاسل ISO؛ والإجابات بسلاسل ISO.
تحقق، ثم اطلب:
async function connectHealth() {
if (!(window.AppMint && AppMint.health)) return false; // browser or option off
var s = await AppMint.health.isAvailable();
if (s.status === 'not_installed') { await AppMint.health.openHealthConnect(); return false; }
if (!s.available) return false;
var r = await AppMint.health.requestPermissions({ read: ['steps', 'heartRate'], write: ['weight'] });
return r.ok && r.denied.read.length === 0;
}خطوات اليوم (المجاميع مع aggregate: true، والسجلات نفسها بدونه):
async function stepsToday() {
var start = new Date(); start.setHours(0, 0, 0, 0);
var r = await AppMint.health.read('steps', { start: start, end: new Date(), aggregate: true });
if (!r.ok) { console.warn(r.code, r.message); return 0; }
return r.aggregate.count;
}
async function lastNightHeartRate() {
var end = Date.now(), start = end - 12 * 3600 * 1000;
var r = await AppMint.health.read('heartRate', { start: start, end: end });
// r.records = [{start, end, id, samples: [{time, bpm}]}]
return r.ok ? r.records.flatMap(function (x) { return x.samples; }) : [];
}الكتابة - سجل واحد أو مصفوفة:
await AppMint.health.write('weight', { time: Date.now(), kilograms: 72.4 });
await AppMint.health.write('exercise', [{
start: Date.now() - 45 * 60000, end: Date.now(), exerciseType: 'running', title: 'Evening run'
}]);
await AppMint.health.write('steps', { start: Date.now() - 3600000, end: Date.now(), count: 4200 });حقول السجل: steps {start, end, count} · distance {start, end, meters} · calories {start, end, kilocalories} · heartRate {start, end, samples: [{time, bpm}]} · sleep {start, end, title?, stages?: [{start, end, stage}]} (awake، sleeping، out_of_bed، light، deep، rem) · weight {time, kilograms} · exercise {start, end, exerciseType, title?} (أسماء Health Connect مثل running، walking، biking، swimming_pool، yoga، strength_training، other_workout). المجاميع: steps {count}، distance {meters}، calories {kilocalories}، heartRate {avg, min, max}، sleep / exercise {minutes}، weight {avg, min, max} (كغ).
ملاحظات: يعرض Health Connect سياسة الخصوصية الخاصة بك من شاشة الأذونات - العنوان من خطوة الإنهاء، أو السياسة المولَّدة. قبل النشر على Google Play، املأ محتوى التطبيق ← تطبيقات الصحة في Play Console بالأنواع نفسها من البيانات وسبب حاجة التطبيق إلى كل منها؛ فـ Play تراجع أذونات الصحة. يمنح Health Connect التطبيق آخر 30 يومًا من السجل قبل أول منح للإذن. الطرق الخام خلفه (healthIsAvailable، healthRequestPermissions، healthRead، healthWrite، healthOpen) تأخذ نص JSON ومعرّف رد نداء - استخدم المساعد.
healthRead الجسر (bridge)#
window.WebToApk.healthRead(type: String, optionsJson: String, callbackId: String)
يقرأ سجلات [type] (أو المجاميع مع `aggregate:true`) بين `start` و`end` في [optionsJson].
مثال
موثَّق مع AppMint.health - والمثال هناك يعرض هذا أيضًا.
يقرأ ويكتب بيانات صحة المستخدم عبر Health Connect: الخطوات، المسافة، السعرات النشطة، معدل ضربات القلب، النوم، الوزن وجلسات التمرين. فعّل بيانات الصحة (Health Connect) في خطوة الوصول بالمعالج وحدد الأنواع وما إذا كان التطبيق يقرأ كلًا منها أو يكتبه - فقط هذه يمكن طلبها.
يعيد: كل طريقة تعيد Promise. isAvailable() ← {ok: true, available, status, read, write} (status: available، not_installed، update_required، unsupported = Android أقدم من 8.0، disabled = الخيار معطّل). والبقية ← {ok: true, …} أو {ok: false, code, message} مع code disabled، unsupported، not_installed، update_required، not_declared (نوع غير محدد في المعالج)، permission (لم يمنحه المستخدم)، bad-input، blocked (صفحة من موقع آخر)، failed. يتطلب: خيار المعالج، وAndroid 8.0+، وHealth Connect (مدمج في Android 14+، وتطبيق من Play قبل ذلك).
الأنواع: steps، distance، calories، heartRate، sleep، weight، exercise. الأوقات بالمللي ثانية (Date.now())، أو كائنات Date أو سلاسل ISO؛ والإجابات بسلاسل ISO.
تحقق، ثم اطلب:
async function connectHealth() {
if (!(window.AppMint && AppMint.health)) return false; // browser or option off
var s = await AppMint.health.isAvailable();
if (s.status === 'not_installed') { await AppMint.health.openHealthConnect(); return false; }
if (!s.available) return false;
var r = await AppMint.health.requestPermissions({ read: ['steps', 'heartRate'], write: ['weight'] });
return r.ok && r.denied.read.length === 0;
}خطوات اليوم (المجاميع مع aggregate: true، والسجلات نفسها بدونه):
async function stepsToday() {
var start = new Date(); start.setHours(0, 0, 0, 0);
var r = await AppMint.health.read('steps', { start: start, end: new Date(), aggregate: true });
if (!r.ok) { console.warn(r.code, r.message); return 0; }
return r.aggregate.count;
}
async function lastNightHeartRate() {
var end = Date.now(), start = end - 12 * 3600 * 1000;
var r = await AppMint.health.read('heartRate', { start: start, end: end });
// r.records = [{start, end, id, samples: [{time, bpm}]}]
return r.ok ? r.records.flatMap(function (x) { return x.samples; }) : [];
}الكتابة - سجل واحد أو مصفوفة:
await AppMint.health.write('weight', { time: Date.now(), kilograms: 72.4 });
await AppMint.health.write('exercise', [{
start: Date.now() - 45 * 60000, end: Date.now(), exerciseType: 'running', title: 'Evening run'
}]);
await AppMint.health.write('steps', { start: Date.now() - 3600000, end: Date.now(), count: 4200 });حقول السجل: steps {start, end, count} · distance {start, end, meters} · calories {start, end, kilocalories} · heartRate {start, end, samples: [{time, bpm}]} · sleep {start, end, title?, stages?: [{start, end, stage}]} (awake، sleeping، out_of_bed، light، deep، rem) · weight {time, kilograms} · exercise {start, end, exerciseType, title?} (أسماء Health Connect مثل running، walking، biking، swimming_pool، yoga، strength_training، other_workout). المجاميع: steps {count}، distance {meters}، calories {kilocalories}، heartRate {avg, min, max}، sleep / exercise {minutes}، weight {avg, min, max} (كغ).
ملاحظات: يعرض Health Connect سياسة الخصوصية الخاصة بك من شاشة الأذونات - العنوان من خطوة الإنهاء، أو السياسة المولَّدة. قبل النشر على Google Play، املأ محتوى التطبيق ← تطبيقات الصحة في Play Console بالأنواع نفسها من البيانات وسبب حاجة التطبيق إلى كل منها؛ فـ Play تراجع أذونات الصحة. يمنح Health Connect التطبيق آخر 30 يومًا من السجل قبل أول منح للإذن. الطرق الخام خلفه (healthIsAvailable، healthRequestPermissions، healthRead، healthWrite، healthOpen) تأخذ نص JSON ومعرّف رد نداء - استخدم المساعد.
healthRequestPermissions الجسر (bridge)#
window.WebToApk.healthRequestPermissions(requestJson: String, callbackId: String)
يفتح شاشة أذونات Health Connect لـ [requestJson] `{read:[…], write:[…]}`؛ ويعيد `{granted, denied}`.
مثال
موثَّق مع AppMint.health - والمثال هناك يعرض هذا أيضًا.
يقرأ ويكتب بيانات صحة المستخدم عبر Health Connect: الخطوات، المسافة، السعرات النشطة، معدل ضربات القلب، النوم، الوزن وجلسات التمرين. فعّل بيانات الصحة (Health Connect) في خطوة الوصول بالمعالج وحدد الأنواع وما إذا كان التطبيق يقرأ كلًا منها أو يكتبه - فقط هذه يمكن طلبها.
يعيد: كل طريقة تعيد Promise. isAvailable() ← {ok: true, available, status, read, write} (status: available، not_installed، update_required، unsupported = Android أقدم من 8.0، disabled = الخيار معطّل). والبقية ← {ok: true, …} أو {ok: false, code, message} مع code disabled، unsupported، not_installed، update_required، not_declared (نوع غير محدد في المعالج)، permission (لم يمنحه المستخدم)، bad-input، blocked (صفحة من موقع آخر)، failed. يتطلب: خيار المعالج، وAndroid 8.0+، وHealth Connect (مدمج في Android 14+، وتطبيق من Play قبل ذلك).
الأنواع: steps، distance، calories، heartRate، sleep، weight، exercise. الأوقات بالمللي ثانية (Date.now())، أو كائنات Date أو سلاسل ISO؛ والإجابات بسلاسل ISO.
تحقق، ثم اطلب:
async function connectHealth() {
if (!(window.AppMint && AppMint.health)) return false; // browser or option off
var s = await AppMint.health.isAvailable();
if (s.status === 'not_installed') { await AppMint.health.openHealthConnect(); return false; }
if (!s.available) return false;
var r = await AppMint.health.requestPermissions({ read: ['steps', 'heartRate'], write: ['weight'] });
return r.ok && r.denied.read.length === 0;
}خطوات اليوم (المجاميع مع aggregate: true، والسجلات نفسها بدونه):
async function stepsToday() {
var start = new Date(); start.setHours(0, 0, 0, 0);
var r = await AppMint.health.read('steps', { start: start, end: new Date(), aggregate: true });
if (!r.ok) { console.warn(r.code, r.message); return 0; }
return r.aggregate.count;
}
async function lastNightHeartRate() {
var end = Date.now(), start = end - 12 * 3600 * 1000;
var r = await AppMint.health.read('heartRate', { start: start, end: end });
// r.records = [{start, end, id, samples: [{time, bpm}]}]
return r.ok ? r.records.flatMap(function (x) { return x.samples; }) : [];
}الكتابة - سجل واحد أو مصفوفة:
await AppMint.health.write('weight', { time: Date.now(), kilograms: 72.4 });
await AppMint.health.write('exercise', [{
start: Date.now() - 45 * 60000, end: Date.now(), exerciseType: 'running', title: 'Evening run'
}]);
await AppMint.health.write('steps', { start: Date.now() - 3600000, end: Date.now(), count: 4200 });حقول السجل: steps {start, end, count} · distance {start, end, meters} · calories {start, end, kilocalories} · heartRate {start, end, samples: [{time, bpm}]} · sleep {start, end, title?, stages?: [{start, end, stage}]} (awake، sleeping، out_of_bed، light، deep، rem) · weight {time, kilograms} · exercise {start, end, exerciseType, title?} (أسماء Health Connect مثل running، walking، biking، swimming_pool، yoga، strength_training، other_workout). المجاميع: steps {count}، distance {meters}، calories {kilocalories}، heartRate {avg, min, max}، sleep / exercise {minutes}، weight {avg, min, max} (كغ).
ملاحظات: يعرض Health Connect سياسة الخصوصية الخاصة بك من شاشة الأذونات - العنوان من خطوة الإنهاء، أو السياسة المولَّدة. قبل النشر على Google Play، املأ محتوى التطبيق ← تطبيقات الصحة في Play Console بالأنواع نفسها من البيانات وسبب حاجة التطبيق إلى كل منها؛ فـ Play تراجع أذونات الصحة. يمنح Health Connect التطبيق آخر 30 يومًا من السجل قبل أول منح للإذن. الطرق الخام خلفه (healthIsAvailable، healthRequestPermissions، healthRead، healthWrite، healthOpen) تأخذ نص JSON ومعرّف رد نداء - استخدم المساعد.
healthWrite الجسر (bridge)#
window.WebToApk.healthWrite(type: String, recordsJson: String, callbackId: String)
يكتب السجلات الموجودة في [recordsJson] (مصفوفة) بنوع [type]؛ ويعيد معرّفاتها.
مثال
موثَّق مع AppMint.health - والمثال هناك يعرض هذا أيضًا.
يقرأ ويكتب بيانات صحة المستخدم عبر Health Connect: الخطوات، المسافة، السعرات النشطة، معدل ضربات القلب، النوم، الوزن وجلسات التمرين. فعّل بيانات الصحة (Health Connect) في خطوة الوصول بالمعالج وحدد الأنواع وما إذا كان التطبيق يقرأ كلًا منها أو يكتبه - فقط هذه يمكن طلبها.
يعيد: كل طريقة تعيد Promise. isAvailable() ← {ok: true, available, status, read, write} (status: available، not_installed، update_required، unsupported = Android أقدم من 8.0، disabled = الخيار معطّل). والبقية ← {ok: true, …} أو {ok: false, code, message} مع code disabled، unsupported، not_installed، update_required، not_declared (نوع غير محدد في المعالج)، permission (لم يمنحه المستخدم)، bad-input، blocked (صفحة من موقع آخر)، failed. يتطلب: خيار المعالج، وAndroid 8.0+، وHealth Connect (مدمج في Android 14+، وتطبيق من Play قبل ذلك).
الأنواع: steps، distance، calories، heartRate، sleep، weight، exercise. الأوقات بالمللي ثانية (Date.now())، أو كائنات Date أو سلاسل ISO؛ والإجابات بسلاسل ISO.
تحقق، ثم اطلب:
async function connectHealth() {
if (!(window.AppMint && AppMint.health)) return false; // browser or option off
var s = await AppMint.health.isAvailable();
if (s.status === 'not_installed') { await AppMint.health.openHealthConnect(); return false; }
if (!s.available) return false;
var r = await AppMint.health.requestPermissions({ read: ['steps', 'heartRate'], write: ['weight'] });
return r.ok && r.denied.read.length === 0;
}خطوات اليوم (المجاميع مع aggregate: true، والسجلات نفسها بدونه):
async function stepsToday() {
var start = new Date(); start.setHours(0, 0, 0, 0);
var r = await AppMint.health.read('steps', { start: start, end: new Date(), aggregate: true });
if (!r.ok) { console.warn(r.code, r.message); return 0; }
return r.aggregate.count;
}
async function lastNightHeartRate() {
var end = Date.now(), start = end - 12 * 3600 * 1000;
var r = await AppMint.health.read('heartRate', { start: start, end: end });
// r.records = [{start, end, id, samples: [{time, bpm}]}]
return r.ok ? r.records.flatMap(function (x) { return x.samples; }) : [];
}الكتابة - سجل واحد أو مصفوفة:
await AppMint.health.write('weight', { time: Date.now(), kilograms: 72.4 });
await AppMint.health.write('exercise', [{
start: Date.now() - 45 * 60000, end: Date.now(), exerciseType: 'running', title: 'Evening run'
}]);
await AppMint.health.write('steps', { start: Date.now() - 3600000, end: Date.now(), count: 4200 });حقول السجل: steps {start, end, count} · distance {start, end, meters} · calories {start, end, kilocalories} · heartRate {start, end, samples: [{time, bpm}]} · sleep {start, end, title?, stages?: [{start, end, stage}]} (awake، sleeping، out_of_bed، light، deep، rem) · weight {time, kilograms} · exercise {start, end, exerciseType, title?} (أسماء Health Connect مثل running، walking، biking، swimming_pool، yoga، strength_training، other_workout). المجاميع: steps {count}، distance {meters}، calories {kilocalories}، heartRate {avg, min, max}، sleep / exercise {minutes}، weight {avg, min, max} (كغ).
ملاحظات: يعرض Health Connect سياسة الخصوصية الخاصة بك من شاشة الأذونات - العنوان من خطوة الإنهاء، أو السياسة المولَّدة. قبل النشر على Google Play، املأ محتوى التطبيق ← تطبيقات الصحة في Play Console بالأنواع نفسها من البيانات وسبب حاجة التطبيق إلى كل منها؛ فـ Play تراجع أذونات الصحة. يمنح Health Connect التطبيق آخر 30 يومًا من السجل قبل أول منح للإذن. الطرق الخام خلفه (healthIsAvailable، healthRequestPermissions، healthRead، healthWrite، healthOpen) تأخذ نص JSON ومعرّف رد نداء - استخدم المساعد.