Bu rehber, uygulamanızda Health Connect'i kullanmaya nasıl başlayabileceğinizi gösterir.
1. adım: Health Connect uygulamasını hazırlayın
Uygulamanızın Health Connect SDK'sı aracılığıyla gönderdiği tüm isteklerin işlenmesi Health Connect uygulamasından sorumludur. Bu istekler arasında verilerin depolanması ve okuma ve yazma erişiminin yönetilmesi yer alır.
Health Connect'e erişim, telefona yüklenen Android sürümüne bağlıdır. Aşağıdaki bölümlerde, Android'in son sürümlerinin birkaçının nasıl kullanılacağı açıklanmaktadır.
Android 14
Android 14'ten (API düzeyi 34) itibaren Health Connect, Android Framework'in bir parçasıdır. Health Connect'in bu sürümü bir çerçeve modülüdür. Entegre herhangi bir kurulum gerekmez.
Android 13 ve önceki sürümler
Android 13 (API düzeyi 33) ve önceki sürümlerde Health Connect, Android Framework'in bir parçası değildir. Bunun için Google Play Store'dan Health Connect uygulamasını yüklemeniz gerekir.
Uygulamanızı Android 13 ve önceki sürümlerde Health Connect ile entegre ettiyseniz ve Android 14'e taşımak istiyorsanız Android 13'ten 14'e geçiş başlıklı makaleyi inceleyin.
Health Connect uygulamasını açma
Health Connect artık varsayılan olarak ana ekranda görünmez. Health Connect'i açmak için Ayarlar > Uygulamalar > Health Connect'e gidin veya Health Connect'i Hızlı Ayarlar menünüze ekleyin.
Ayrıca Health Connect, kullanıcının Sağlık uygulamasında depolanan sağlık verileri için bir PIN, desen veya şifre Cihaz kilitliyken bağlantı kötü amaçlı taraflardan korunur. Bir için Ayarlar > Güvenlik > Ekran kilidi.
2. Adım: Health Connect SDK'sını uygulamanıza ekleyin
Health Connect SDK'sı, Health Connect uygulamasındaki veri deposunda işlem gerçekleştirirken istek göndermek için Health Connect API'yi kullanmaktan sorumludur.
Modül düzeyindeki build.gradle
dosyanıza Health Connect SDK'sı bağımlılığını ekleyin:
dependencies {
...
implementation "androidx.health.connect:connect-client:1.1.0-alpha02"
...
}
En son sürüm için Health Connect sürümlerine bakın.
3. Adım: Uygulamanızı yapılandırın
Aşağıdaki bölümlerde, uygulamanızı Merchant Center'a entegre etmek için Health Connect.
İzinleri bildirme
Sağlık ve fitness verilerine erişim hassastır. Health Connect, okuma ve yazma işlemleri için bir güvenlik katmanı uygulayarak kullanıcı güvenini korur.
Gerekli veri türlerine göre AndroidManifest.xml
dosyasında okuma ve yazma izinlerini belirtin. Oluşturduğunuz izin grubunu
için erişim isteğinde bulunabilirsiniz.
Health Connect, standart Android izin beyan biçimini kullanır.
<uses-permission>
etiketleriyle izin atama Bunları
<manifest>
etiket.
<manifest>
<uses-permission android:name="android.permission.health.READ_HEART_RATE"/>
<uses-permission android:name="android.permission.health.WRITE_HEART_RATE"/>
<uses-permission android:name="android.permission.health.READ_STEPS"/>
<uses-permission android:name="android.permission.health.WRITE_STEPS"/>
<application>
...
</application>
</manifest>
İzinlerin ve karşılık gelen veri türlerinin tam listesi için Veri türleri listesi başlıklı makaleyi inceleyin.
Uygulamanızın gizlilik politikası iletişim kutusunu gösterme
Android manifest'inizde, uygulamanızın uygulamanızın gerekçesini belirten gizlilik politikası kullanıcı verilerinin nasıl kullanıldığını ve işlendiğini açıklayan bir listedir.
Kullanıcı Health Connect izinler ekranındaki gizlilik politikası bağlantısını tıkladığında uygulamaya gönderilen ACTION_SHOW_PERMISSIONS_RATIONALE
intent'ini işlemek için bu etkinliği tanımlayın.
...
<application>
...
<!-- For supported versions through Android 13, create an activity to show the rationale
of Health Connect permissions once users click the privacy policy link. -->
<activity
android:name=".PermissionsRationaleActivity"
android:exported="true">
<intent-filter>
<action android:name="androidx.health.ACTION_SHOW_PERMISSIONS_RATIONALE" />
</intent-filter>
</activity>
<!-- For versions starting Android 14, create an activity alias to show the rationale
of Health Connect permissions once users click the privacy policy link. -->
<activity-alias
android:name="ViewPermissionUsageActivity"
android:exported="true"
android:targetActivity=".PermissionsRationaleActivity"
android:permission="android.permission.START_VIEW_PERMISSION_USAGE">
<intent-filter>
<action android:name="android.intent.action.VIEW_PERMISSION_USAGE" />
<category android:name="android.intent.category.HEALTH_PERMISSIONS" />
</intent-filter>
</activity-alias>
...
</application>
...
Health Connect istemcisi edinme
HealthConnectClient
, Health Connect API'ye bir giriş noktasıdır.
Uygulamanın, Health Connect uygulamasındaki veri deposunu kullanmasına olanak tanır. Google
temel depolama katmanıyla bağlantısını otomatik olarak yönetir ve
tüm IPC'yi ve giden isteklerin ve gelen yanıtların serileştirilmesini sağlar.
İstemci örneği almak için önce Android manifest dosyanızda Health Connect paket adını beyan edin.
<application> ... </application>
...
<!-- Check if Health Connect is installed -->
<queries>
<package android:name="com.google.android.apps.healthdata" />
</queries>
Ardından, Etkinlik sayfanızda getSdkStatus
simgesini kullanarak Health Connect'in yüklü olup olmadığını kontrol edin. Varsa bir
HealthConnectClient
örneği.
val availabilityStatus = HealthConnectClient.getSdkStatus(context, providerPackageName)
if (availabilityStatus == HealthConnectClient.SDK_UNAVAILABLE) {
return // early return as there is no viable integration
}
if (availabilityStatus == HealthConnectClient.SDK_UNAVAILABLE_PROVIDER_UPDATE_REQUIRED) {
// Optionally redirect to package installer to find a provider, for example:
val uriString = "market://details?id=$providerPackageName&url=healthconnect%3A%2F%2Fonboarding"
context.startActivity(
Intent(Intent.ACTION_VIEW).apply {
setPackage("com.android.vending")
data = Uri.parse(uriString)
putExtra("overlay", true)
putExtra("callerId", context.packageName)
}
)
return
}
val healthConnectClient = HealthConnectClient.getOrCreate(context)
// Issue operations with healthConnectClient
4. Adım: Kullanıcıdan izin isteyin
Uygulamanızın, istemci örneği oluşturduktan sonra kullanıcıdan izin istemesi gerekir. Kullanıcıların diledikleri zaman izin vermesine veya reddetmesine izin verilmelidir.
Bunu yapmak için gerekli veri türlerine yönelik bir izin grubu oluşturun. Öncelikle, gruptaki izinlerin Android manifest dosyanızda beyan edildiğinden emin olun.
// Create a set of permissions for required data types
val PERMISSIONS =
setOf(
HealthPermission.getReadPermission(HeartRateRecord::class),
HealthPermission.getWritePermission(HeartRateRecord::class),
HealthPermission.getReadPermission(StepsRecord::class),
HealthPermission.getWritePermission(StepsRecord::class)
)
Uygulamanıza gerekli izinlerin verilip verilmediğini görmek için getGrantedPermissions
'u kullanın. Aksi takdirde, bu izinleri istemek için createRequestPermissionResultContract
kullanın. Health Connect izinleri ekranı gösterilir.
// Create the permissions launcher
val requestPermissionActivityContract = PermissionController.createRequestPermissionResultContract()
val requestPermissions = registerForActivityResult(requestPermissionActivityContract) { granted ->
if (granted.containsAll(PERMISSIONS)) {
// Permissions successfully granted
} else {
// Lack of required permissions
}
}
suspend fun checkPermissionsAndRun(healthConnectClient: HealthConnectClient) {
val granted = healthConnectClient.permissionController.getGrantedPermissions()
if (granted.containsAll(PERMISSIONS)) {
// Permissions already granted; proceed with inserting or reading data
} else {
requestPermissions.launch(PERMISSIONS)
}
}
İzinlerin sabit olduğunu varsaymayın, çünkü kullanıcılar izin verebilir ya da iptal edebilir. istediğiniz zaman değiştirebilirsiniz. Uygulamanızın verilen izinleri düzenli olarak kontrol etmesi gerekiyor. ve iznin kaybedildiği senaryoları ele alma.
5. Adım: İşlemleri gerçekleştirme
Her şey hazır olduğuna göre uygulamanızda okuma ve yazma işlemleri gerçekleştirin.
Verileri yazma
Verilerinizi bir kayıt halinde yapılandırın. Daha fazla bilgi için Health Connect'teki veri türleri hakkında bilgi edinin.
val stepsRecord = StepsRecord(
count = 120,
startTime = START_TIME,
endTime = END_TIME,
startZoneOffset = START_ZONE_OFFSET,
endZoneOffset = END_ZONE_OFFSET,
)
Ardından insertRecords
simgesini kullanarak kaydınızı yazın.
suspend fun insertSteps(healthConnectClient: HealthConnectClient) {
try {
val stepsRecord = StepsRecord(
count = 120,
startTime = START_TIME,
endTime = END_TIME,
startZoneOffset = START_ZONE_OFFSET,
endZoneOffset = END_ZONE_OFFSET,
)
healthConnectClient.insertRecords(listOf(stepsRecord))
} catch (e: Exception) {
// Run error handling here
}
}
Verileri okuma
readRecords
kullanarak verilerinizi tek tek okuyabilirsiniz.
suspend fun readStepsByTimeRange(
healthConnectClient: HealthConnectClient,
startTime: Instant,
endTime: Instant
) {
try {
val response =
healthConnectClient.readRecords(
ReadRecordsRequest(
StepsRecord::class,
timeRangeFilter = TimeRangeFilter.between(startTime, endTime)
)
)
for (stepRecord in response.records) {
// Process each step record
}
} catch (e: Exception) {
// Run error handling here.
}
}
aggregate
'u kullanarak verilerinizi toplu olarak da okuyabilirsiniz.
suspend fun aggregateSteps(
healthConnectClient: HealthConnectClient,
startTime: Instant,
endTime: Instant
) {
try {
val response = healthConnectClient.aggregate(
AggregateRequest(
metrics = setOf(StepsRecord.COUNT_TOTAL),
timeRangeFilter = TimeRangeFilter.between(startTime, endTime)
)
)
// The result may be null if no data is available in the time range
val stepCount = response[StepsRecord.COUNT_TOTAL]
} catch (e: Exception) {
// Run error handling here
}
}
Video eğiticiler
Health Connect özellikleri ve sorunsuz bir entegrasyon için en iyi uygulama yönergeleri hakkında daha fazla bilgi edinmek üzere aşağıdaki videoları izleyin:
- Health Connect'te izinleri yönetme
- Health Connect'te okuma ve yazma
- İyi bir Health Connect entegrasyonu için ipuçları
Kaynaklar
Aşağıdaki kaynaklardan size yardımcı olacak daha sonra da devam edebilir.
- Health Connect SDK'sı (Jetpack'te kullanılabilir): Bu SDK'yı uygulamasını kullanın.
- API referansı: Şu kod için Jetpack referansına bakın: Health Connect API'ye gidin.
- Veri türlerinin kullanımını beyan edin: Play Console'da, uygulamanızın okuduğu ve yazdığı Health Connect veri türlerine erişimi beyan edin.
- İsteğe bağlı GitHub kod örneği ve codelab: GitHub kod örneğine göz atın repository ve codelab alıştırmasını kullanarak başladı.
Sonraki adımlar
İşlemlerin nasıl gerçekleştirileceğini öğrenmek için Yaygın iş akışları Health Connect, örneğin: