Ücretsiz APK oluştur

JavaScript köprü API'si

Health Connect

Android'in Health Connect'i üzerinden adımları, mesafeyi, kaloriyi, kalp atış hızını, uykuyu, kiloyu ve egzersizi, derlemede işaretlenen türler için okuma ve yazma.

AppMint.health yardımcı#

AppMint.health.isAvailable() / requestPermissions() / read() / write() / openHealthConnect()

Örnek

Kullanıcının sağlık verilerini Health Connect üzerinden okur ve yazar: adımlar, mesafe, aktif kaloriler, kalp atış hızı, uyku, kilo ve egzersiz seansları. Sihirbazın Erişim adımında Sağlık verileri (Health Connect) seçeneğini açın ve türleri ile uygulamanın her birini okuyup yazmayacağını işaretleyin - yalnızca bunlar istenebilir.

Döndürür: her yöntem bir Promise döndürür. isAvailable() → {ok: true, available, status, read, write} (status: available, not_installed, update_required, unsupported = Android 8.0'dan eski, disabled = seçenek kapalı). Diğerleri → {ok: true, …} veya {ok: false, code, message}, code disabled, unsupported, not_installed, update_required, not_declared (tür sihirbazda işaretlenmemiş), permission (kullanıcı izin vermemiş), bad-input, blocked (başka bir siteden gelen sayfa), failed ile. Gerekenler: sihirbaz seçeneği, Android 8.0+ ve Health Connect (Android 14+ içinde yerleşik, öncesinde Play'den bir uygulama).

Türler: steps, distance, calories, heartRate, sleep, weight, exercise. Zamanlar milisaniyedir (Date.now()), Date nesneleri veya ISO dizeleridir; yanıtlar ISO dizeleri kullanır.

Denetleyin, sonra isteyin:

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;
}

Bugünkü adımlar (aggregate: true ile toplamlar, onsuz kayıtların kendileri):

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; }) : [];
}

Yazma - bir kayıt veya bir dizi:

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 });

Kayıt alanları: 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?} (running, walking, biking, swimming_pool, yoga, strength_training, other_workout gibi Health Connect adları). Toplamlar: steps {count}, distance {meters}, calories {kilocalories}, heartRate {avg, min, max}, sleep / exercise {minutes}, weight {avg, min, max} (kg).

Notlar: Health Connect, gizlilik politikanızı izin ekranından gösterir - Bitiş adımındaki adres veya oluşturulan politika. Google Play'de yayınlamadan önce Play Console'da Uygulama içeriği → Sağlık uygulamaları bölümünü aynı veri türleri ve uygulamanın her birine neden ihtiyaç duyduğuyla doldurun; Play sağlık izinlerini inceler. Health Connect, bir uygulamaya ilk izninden önceki son 30 günlük geçmişi verir. Arkasındaki ham köprü yöntemleri (healthIsAvailable, healthRequestPermissions, healthRead, healthWrite, healthOpen) JSON metni ve bir geri çağrı kimliği alır - yardımcıyı kullanın.

healthIsAvailable köprü#

window.WebToApk.healthIsAvailable(callbackId: String)

Bu uygulama için Health Connect'in durumu; [callbackId] değerini `{available, status, read, write}` ile tamamlar.

Örnek

AppMint.health ile birlikte belgelenmiştir - oradaki örnek bunu da gösterir.

Kullanıcının sağlık verilerini Health Connect üzerinden okur ve yazar: adımlar, mesafe, aktif kaloriler, kalp atış hızı, uyku, kilo ve egzersiz seansları. Sihirbazın Erişim adımında Sağlık verileri (Health Connect) seçeneğini açın ve türleri ile uygulamanın her birini okuyup yazmayacağını işaretleyin - yalnızca bunlar istenebilir.

Döndürür: her yöntem bir Promise döndürür. isAvailable() → {ok: true, available, status, read, write} (status: available, not_installed, update_required, unsupported = Android 8.0'dan eski, disabled = seçenek kapalı). Diğerleri → {ok: true, …} veya {ok: false, code, message}, code disabled, unsupported, not_installed, update_required, not_declared (tür sihirbazda işaretlenmemiş), permission (kullanıcı izin vermemiş), bad-input, blocked (başka bir siteden gelen sayfa), failed ile. Gerekenler: sihirbaz seçeneği, Android 8.0+ ve Health Connect (Android 14+ içinde yerleşik, öncesinde Play'den bir uygulama).

Türler: steps, distance, calories, heartRate, sleep, weight, exercise. Zamanlar milisaniyedir (Date.now()), Date nesneleri veya ISO dizeleridir; yanıtlar ISO dizeleri kullanır.

Denetleyin, sonra isteyin:

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;
}

Bugünkü adımlar (aggregate: true ile toplamlar, onsuz kayıtların kendileri):

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; }) : [];
}

Yazma - bir kayıt veya bir dizi:

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 });

Kayıt alanları: 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?} (running, walking, biking, swimming_pool, yoga, strength_training, other_workout gibi Health Connect adları). Toplamlar: steps {count}, distance {meters}, calories {kilocalories}, heartRate {avg, min, max}, sleep / exercise {minutes}, weight {avg, min, max} (kg).

Notlar: Health Connect, gizlilik politikanızı izin ekranından gösterir - Bitiş adımındaki adres veya oluşturulan politika. Google Play'de yayınlamadan önce Play Console'da Uygulama içeriği → Sağlık uygulamaları bölümünü aynı veri türleri ve uygulamanın her birine neden ihtiyaç duyduğuyla doldurun; Play sağlık izinlerini inceler. Health Connect, bir uygulamaya ilk izninden önceki son 30 günlük geçmişi verir. Arkasındaki ham köprü yöntemleri (healthIsAvailable, healthRequestPermissions, healthRead, healthWrite, healthOpen) JSON metni ve bir geri çağrı kimliği alır - yardımcıyı kullanın.

healthOpen köprü#

window.WebToApk.healthOpen(callbackId: String)

Health Connect'i açar; yüklü değilse Play Store sayfasını açar.

Örnek

AppMint.health ile birlikte belgelenmiştir - oradaki örnek bunu da gösterir.

Kullanıcının sağlık verilerini Health Connect üzerinden okur ve yazar: adımlar, mesafe, aktif kaloriler, kalp atış hızı, uyku, kilo ve egzersiz seansları. Sihirbazın Erişim adımında Sağlık verileri (Health Connect) seçeneğini açın ve türleri ile uygulamanın her birini okuyup yazmayacağını işaretleyin - yalnızca bunlar istenebilir.

Döndürür: her yöntem bir Promise döndürür. isAvailable() → {ok: true, available, status, read, write} (status: available, not_installed, update_required, unsupported = Android 8.0'dan eski, disabled = seçenek kapalı). Diğerleri → {ok: true, …} veya {ok: false, code, message}, code disabled, unsupported, not_installed, update_required, not_declared (tür sihirbazda işaretlenmemiş), permission (kullanıcı izin vermemiş), bad-input, blocked (başka bir siteden gelen sayfa), failed ile. Gerekenler: sihirbaz seçeneği, Android 8.0+ ve Health Connect (Android 14+ içinde yerleşik, öncesinde Play'den bir uygulama).

Türler: steps, distance, calories, heartRate, sleep, weight, exercise. Zamanlar milisaniyedir (Date.now()), Date nesneleri veya ISO dizeleridir; yanıtlar ISO dizeleri kullanır.

Denetleyin, sonra isteyin:

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;
}

Bugünkü adımlar (aggregate: true ile toplamlar, onsuz kayıtların kendileri):

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; }) : [];
}

Yazma - bir kayıt veya bir dizi:

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 });

Kayıt alanları: 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?} (running, walking, biking, swimming_pool, yoga, strength_training, other_workout gibi Health Connect adları). Toplamlar: steps {count}, distance {meters}, calories {kilocalories}, heartRate {avg, min, max}, sleep / exercise {minutes}, weight {avg, min, max} (kg).

Notlar: Health Connect, gizlilik politikanızı izin ekranından gösterir - Bitiş adımındaki adres veya oluşturulan politika. Google Play'de yayınlamadan önce Play Console'da Uygulama içeriği → Sağlık uygulamaları bölümünü aynı veri türleri ve uygulamanın her birine neden ihtiyaç duyduğuyla doldurun; Play sağlık izinlerini inceler. Health Connect, bir uygulamaya ilk izninden önceki son 30 günlük geçmişi verir. Arkasındaki ham köprü yöntemleri (healthIsAvailable, healthRequestPermissions, healthRead, healthWrite, healthOpen) JSON metni ve bir geri çağrı kimliği alır - yardımcıyı kullanın.

healthRead köprü#

window.WebToApk.healthRead(type: String, optionsJson: String, callbackId: String)

[optionsJson] içindeki `start` ve `end` arasında [type] kayıtlarını (veya `aggregate:true` ile toplamları) okur.

Örnek

AppMint.health ile birlikte belgelenmiştir - oradaki örnek bunu da gösterir.

Kullanıcının sağlık verilerini Health Connect üzerinden okur ve yazar: adımlar, mesafe, aktif kaloriler, kalp atış hızı, uyku, kilo ve egzersiz seansları. Sihirbazın Erişim adımında Sağlık verileri (Health Connect) seçeneğini açın ve türleri ile uygulamanın her birini okuyup yazmayacağını işaretleyin - yalnızca bunlar istenebilir.

Döndürür: her yöntem bir Promise döndürür. isAvailable() → {ok: true, available, status, read, write} (status: available, not_installed, update_required, unsupported = Android 8.0'dan eski, disabled = seçenek kapalı). Diğerleri → {ok: true, …} veya {ok: false, code, message}, code disabled, unsupported, not_installed, update_required, not_declared (tür sihirbazda işaretlenmemiş), permission (kullanıcı izin vermemiş), bad-input, blocked (başka bir siteden gelen sayfa), failed ile. Gerekenler: sihirbaz seçeneği, Android 8.0+ ve Health Connect (Android 14+ içinde yerleşik, öncesinde Play'den bir uygulama).

Türler: steps, distance, calories, heartRate, sleep, weight, exercise. Zamanlar milisaniyedir (Date.now()), Date nesneleri veya ISO dizeleridir; yanıtlar ISO dizeleri kullanır.

Denetleyin, sonra isteyin:

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;
}

Bugünkü adımlar (aggregate: true ile toplamlar, onsuz kayıtların kendileri):

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; }) : [];
}

Yazma - bir kayıt veya bir dizi:

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 });

Kayıt alanları: 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?} (running, walking, biking, swimming_pool, yoga, strength_training, other_workout gibi Health Connect adları). Toplamlar: steps {count}, distance {meters}, calories {kilocalories}, heartRate {avg, min, max}, sleep / exercise {minutes}, weight {avg, min, max} (kg).

Notlar: Health Connect, gizlilik politikanızı izin ekranından gösterir - Bitiş adımındaki adres veya oluşturulan politika. Google Play'de yayınlamadan önce Play Console'da Uygulama içeriği → Sağlık uygulamaları bölümünü aynı veri türleri ve uygulamanın her birine neden ihtiyaç duyduğuyla doldurun; Play sağlık izinlerini inceler. Health Connect, bir uygulamaya ilk izninden önceki son 30 günlük geçmişi verir. Arkasındaki ham köprü yöntemleri (healthIsAvailable, healthRequestPermissions, healthRead, healthWrite, healthOpen) JSON metni ve bir geri çağrı kimliği alır - yardımcıyı kullanın.

healthRequestPermissions köprü#

window.WebToApk.healthRequestPermissions(requestJson: String, callbackId: String)

[requestJson] `{read:[…], write:[…]}` için Health Connect'in izin ekranını açar; `{granted, denied}` ile tamamlanır.

Örnek

AppMint.health ile birlikte belgelenmiştir - oradaki örnek bunu da gösterir.

Kullanıcının sağlık verilerini Health Connect üzerinden okur ve yazar: adımlar, mesafe, aktif kaloriler, kalp atış hızı, uyku, kilo ve egzersiz seansları. Sihirbazın Erişim adımında Sağlık verileri (Health Connect) seçeneğini açın ve türleri ile uygulamanın her birini okuyup yazmayacağını işaretleyin - yalnızca bunlar istenebilir.

Döndürür: her yöntem bir Promise döndürür. isAvailable() → {ok: true, available, status, read, write} (status: available, not_installed, update_required, unsupported = Android 8.0'dan eski, disabled = seçenek kapalı). Diğerleri → {ok: true, …} veya {ok: false, code, message}, code disabled, unsupported, not_installed, update_required, not_declared (tür sihirbazda işaretlenmemiş), permission (kullanıcı izin vermemiş), bad-input, blocked (başka bir siteden gelen sayfa), failed ile. Gerekenler: sihirbaz seçeneği, Android 8.0+ ve Health Connect (Android 14+ içinde yerleşik, öncesinde Play'den bir uygulama).

Türler: steps, distance, calories, heartRate, sleep, weight, exercise. Zamanlar milisaniyedir (Date.now()), Date nesneleri veya ISO dizeleridir; yanıtlar ISO dizeleri kullanır.

Denetleyin, sonra isteyin:

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;
}

Bugünkü adımlar (aggregate: true ile toplamlar, onsuz kayıtların kendileri):

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; }) : [];
}

Yazma - bir kayıt veya bir dizi:

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 });

Kayıt alanları: 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?} (running, walking, biking, swimming_pool, yoga, strength_training, other_workout gibi Health Connect adları). Toplamlar: steps {count}, distance {meters}, calories {kilocalories}, heartRate {avg, min, max}, sleep / exercise {minutes}, weight {avg, min, max} (kg).

Notlar: Health Connect, gizlilik politikanızı izin ekranından gösterir - Bitiş adımındaki adres veya oluşturulan politika. Google Play'de yayınlamadan önce Play Console'da Uygulama içeriği → Sağlık uygulamaları bölümünü aynı veri türleri ve uygulamanın her birine neden ihtiyaç duyduğuyla doldurun; Play sağlık izinlerini inceler. Health Connect, bir uygulamaya ilk izninden önceki son 30 günlük geçmişi verir. Arkasındaki ham köprü yöntemleri (healthIsAvailable, healthRequestPermissions, healthRead, healthWrite, healthOpen) JSON metni ve bir geri çağrı kimliği alır - yardımcıyı kullanın.

healthWrite köprü#

window.WebToApk.healthWrite(type: String, recordsJson: String, callbackId: String)

[recordsJson] içindeki kayıtları (bir dizi) [type] olarak yazar; kimlikleriyle birlikte tamamlanır.

Örnek

AppMint.health ile birlikte belgelenmiştir - oradaki örnek bunu da gösterir.

Kullanıcının sağlık verilerini Health Connect üzerinden okur ve yazar: adımlar, mesafe, aktif kaloriler, kalp atış hızı, uyku, kilo ve egzersiz seansları. Sihirbazın Erişim adımında Sağlık verileri (Health Connect) seçeneğini açın ve türleri ile uygulamanın her birini okuyup yazmayacağını işaretleyin - yalnızca bunlar istenebilir.

Döndürür: her yöntem bir Promise döndürür. isAvailable() → {ok: true, available, status, read, write} (status: available, not_installed, update_required, unsupported = Android 8.0'dan eski, disabled = seçenek kapalı). Diğerleri → {ok: true, …} veya {ok: false, code, message}, code disabled, unsupported, not_installed, update_required, not_declared (tür sihirbazda işaretlenmemiş), permission (kullanıcı izin vermemiş), bad-input, blocked (başka bir siteden gelen sayfa), failed ile. Gerekenler: sihirbaz seçeneği, Android 8.0+ ve Health Connect (Android 14+ içinde yerleşik, öncesinde Play'den bir uygulama).

Türler: steps, distance, calories, heartRate, sleep, weight, exercise. Zamanlar milisaniyedir (Date.now()), Date nesneleri veya ISO dizeleridir; yanıtlar ISO dizeleri kullanır.

Denetleyin, sonra isteyin:

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;
}

Bugünkü adımlar (aggregate: true ile toplamlar, onsuz kayıtların kendileri):

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; }) : [];
}

Yazma - bir kayıt veya bir dizi:

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 });

Kayıt alanları: 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?} (running, walking, biking, swimming_pool, yoga, strength_training, other_workout gibi Health Connect adları). Toplamlar: steps {count}, distance {meters}, calories {kilocalories}, heartRate {avg, min, max}, sleep / exercise {minutes}, weight {avg, min, max} (kg).

Notlar: Health Connect, gizlilik politikanızı izin ekranından gösterir - Bitiş adımındaki adres veya oluşturulan politika. Google Play'de yayınlamadan önce Play Console'da Uygulama içeriği → Sağlık uygulamaları bölümünü aynı veri türleri ve uygulamanın her birine neden ihtiyaç duyduğuyla doldurun; Play sağlık izinlerini inceler. Health Connect, bir uygulamaya ilk izninden önceki son 30 günlük geçmişi verir. Arkasındaki ham köprü yöntemleri (healthIsAvailable, healthRequestPermissions, healthRead, healthWrite, healthOpen) JSON metni ve bir geri çağrı kimliği alır - yardımcıyı kullanın.

Her belge derlemesinde uygulama çalışma zamanından ve örnek dosyalarından oluşturulur. Markdown olarak okuyun · Tüm aileler.

22.10.2026 tarihinde yayınlanan köprüyle karşılaştırılarak kontrol edildi.