Health Connect — программное открытие приложенияAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Health Connect — программное открытие приложения

Сообщение Anonymous »

Я следовал инструкциям по добавлению службы HealthConnect в приложение, однако после того, как пользователь одобрит запрошенные разрешения, у него не будет простого способа их изменить. Им нужно зайти в PlayStore, найти HealthConnect и открыть его (значок недавно был удален из панели запуска).
Как открыть Health Connect с Intent в Android? Следующий код НЕ работает после утверждения разрешений requestPermissions.launch(PERMISSIONS).
Вот как выглядит полный код:

Код: Выделить всё

class HealthConnectFragment: Fragment(R.layout.fragment_health_connect) {
private val analyticsHelper: analyticsHelper by inject()

private var _binding: FragmentHealthConnectBinding? = null
// This property is only valid between onCreateView and onDestroyView.
private val binding get() = _binding!!

// Create the permissions launcher.
private val requestPermissionActivityContract = createRequestPermissionResultContract()

// Create the permissions launcher.
private val requestPermissions =
registerForActivityResult(requestPermissionActivityContract) { granted ->
if (granted.containsAll(HealthConnectApi.PERMISSIONS)) {
Timber.e("1 ALL PERMISSIONS GRANTED")
// Permissions successfully granted
} else {
// Lack of required permissions
Timber.e("1 LACKING PERMISSIONS")
}
}

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
_binding = FragmentHealthConnectBinding.bind(view)

analyticsHelper.logScreenView(
Event.AppSetup.HEALTH_CONNECT_SETUP_FRAGMENT,
HealthConnectFragment::class.simpleName!!)

// Set click listener depending on the permissions.
binding.connectButton.setOnClickListener {
if (HealthConnectClient.isAvailable(requireContext())) {
Timber.e("YAYYA")
launchHealthConnectPermissions()
} else {
// ...
Timber.e("NAYYA")
}
}
}

private fun launchHealthConnectPermissions() {
viewLifecycleOwner.lifecycleScope.launchWhenStarted {
requestPermissions.launch(healthConnectApi.PERMISSIONS)
}
}
Подводя итог: если приложение не утвердило разрешения, это действие приведет меня к приложению HealthConnect для утверждения разрешений. Когда приложение предоставило все разрешения, нажатие кнопки ничего не дает. Я хотел бы ВСЕГДА запускать приложение HealthConnect.
Спасибо

Подробнее здесь: https://stackoverflow.com/questions/740 ... en-the-app
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»