Этот код функционирует, как и ожидалось в эмуляторе с использованием pixel 9 API 34 < /em>
, но сбои на Samsung Galaxy A16* (Android 14) при попытке начать намерение с Action Action_manage_Health_permissions < /p>
android.permission.grant_runtime_permissions
Это ошибка? Чего мне не хватает? < /P>
settingsOpenHealthConnect.setOnClickListener(v -> {
Log.d(TAG," settingsOpenHealthConnect.setOnClickListener");
HealthConnectActions healthConnectActions = new HealthConnectActions(this);
healthConnectActions.openSettings();
});
< /code>
import android.content.ContentValues.TAG
import android.content.Context
import android.content.Intent
import android.health.connect.HealthConnectManager
import android.net.Uri
import android.os.Build
import android.util.Log
import androidx.compose.runtime.mutableStateOf
import androidx.core.content.ContextCompat.startActivity
import androidx.health.connect.client.HealthConnectClient
import androidx.health.connect.client.HealthConnectClient.Companion.SDK_AVAILABLE
import androidx.health.connect.client.permission.HealthPermission
import androidx.health.connect.client.records.StepsRecord
import kotlinx.coroutines.TimeoutCancellationException
import kotlinx.coroutines.runBlocking
import kotlinx.coroutines.withTimeoutOrNull
class HealthConnectActions(private val context: Context) {
private val healthConnectClient by lazy { HealthConnectClient.getOrCreate(context) }
fun openSettings() {
val intent = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
Intent(HealthConnectManager.ACTION_MANAGE_HEALTH_PERMISSIONS)
.putExtra(
Intent.EXTRA_PACKAGE_NAME,
context.packageName
)
} else {
Intent(
HealthConnectClient.ACTION_HEALTH_CONNECT_SETTINGS
)
}
startActivity(context, intent, null)
}
}
< /code>
< /code>
FATAL EXCEPTION: main
Process: com.health.fitness.exercise, PID: 32757
java.lang.SecurityException: Permission Denial: starting Intent { act=android.health.connect.action.MANAGE_HEALTH_PERMISSIONS flg=0x10000000 cmp=com.google.android.healthconnect.controller/com.android.healthconnect.controller.PermissionControllerEntryPoint (has extras) } from ProcessRecord{e5c41b5 32757:com.health.fitness.exercise/u0a299} (pid=32757, uid=10299) requires android.permission.GRANT_RUNTIME_PERMISSIONS
at android.os.Parcel.createExceptionOrNull(Parcel.java:3069)
at android.os.Parcel.createException(Parcel.java:3053)
at android.os.Parcel.readException(Parcel.java:3036)
at android.os.Parcel.readException(Parcel.java:2978)
at android.app.IActivityTaskManager$Stub$Proxy.startActivity(IActivityTaskManager.java:3042)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1873)
at android.app.Activity.startActivityForResult(Activity.java:5780)
at androidx.activity.ComponentActivity.startActivityForResult(ComponentActivity.java:712)
at android.app.Activity.startActivityForResult(Activity.java:5738)
at androidx.activity.ComponentActivity.startActivityForResult(ComponentActivity.java:693)
at android.app.Activity.startActivity(Activity.java:6236)
at androidx.core.content.ContextCompat$Api16Impl.startActivity(ContextCompat.java:830)
at androidx.core.content.ContextCompat.startActivity(ContextCompat.java:279)
at com.health.fitness.HealthConnectActions.openSettings(HealthConnectActions.kt:93)
at com.health.fitness.UserAccountSettingsActivity.lambda$onCreate$5$com-health-fitness-UserAccountSettingsActivity(UserAccountSettingsActivity.java:99)
at com.health.fitness.UserAccountSettingsActivity$$ExternalSyntheticLambda6.onClick(D8$$SyntheticClass:0)
at android.view.View.performClick(View.java:8047)
at android.widget.TextView.performClick(TextView.java:17792)
at android.view.View.performClickInternal(View.java:8024)
at android.view.View.-$$Nest$mperformClickInternal(Unknown Source:0)
at android.view.View$PerformClick.run(View.java:31890)
at android.os.Handler.handleCallback(Handler.java:958)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:230)
at android.os.Looper.loop(Looper.java:319)
at android.app.ActivityThread.main(ActivityThread.java:8934)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:588)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)
Caused by: android.os.RemoteException: Remote stack trace:
at com.android.server.wm.ActivityTaskSupervisor.checkStartAnyActivityPermission(ActivityTaskSupervisor.java:1390)
at com.android.server.wm.ActivityStarter.executeRequest(ActivityStarter.java:1468)
at com.android.server.wm.ActivityStarter.execute(ActivityStarter.java:1073)
at com.android.server.wm.ActivityTaskManagerService.startActivityAsUser(ActivityTaskManagerService.java:1985)
at com.android.server.wm.ActivityTaskManagerService.startActivityAsUser(ActivityTaskManagerService.java:1844)
Подробнее здесь: https://stackoverflow.com/questions/794 ... p-settings
Ошибка подключения здоровья при программном открытии настройки приложения ⇐ Android
Форум для тех, кто программирует под Android
1741719674
Anonymous
Этот код функционирует, как и ожидалось в эмуляторе с использованием pixel 9 API 34 < /em>
, но сбои на Samsung Galaxy A16* (Android 14) при попытке начать намерение с Action Action_manage_Health_permissions < /p>
android.permission.grant_runtime_permissions
Это ошибка? Чего мне не хватает? < /P>
settingsOpenHealthConnect.setOnClickListener(v -> {
Log.d(TAG," settingsOpenHealthConnect.setOnClickListener");
HealthConnectActions healthConnectActions = new HealthConnectActions(this);
healthConnectActions.openSettings();
});
< /code>
import android.content.ContentValues.TAG
import android.content.Context
import android.content.Intent
import android.health.connect.HealthConnectManager
import android.net.Uri
import android.os.Build
import android.util.Log
import androidx.compose.runtime.mutableStateOf
import androidx.core.content.ContextCompat.startActivity
import androidx.health.connect.client.HealthConnectClient
import androidx.health.connect.client.HealthConnectClient.Companion.SDK_AVAILABLE
import androidx.health.connect.client.permission.HealthPermission
import androidx.health.connect.client.records.StepsRecord
import kotlinx.coroutines.TimeoutCancellationException
import kotlinx.coroutines.runBlocking
import kotlinx.coroutines.withTimeoutOrNull
class HealthConnectActions(private val context: Context) {
private val healthConnectClient by lazy { HealthConnectClient.getOrCreate(context) }
fun openSettings() {
val intent = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
Intent(HealthConnectManager.ACTION_MANAGE_HEALTH_PERMISSIONS)
.putExtra(
Intent.EXTRA_PACKAGE_NAME,
context.packageName
)
} else {
Intent(
HealthConnectClient.ACTION_HEALTH_CONNECT_SETTINGS
)
}
startActivity(context, intent, null)
}
}
< /code>
< /code>
FATAL EXCEPTION: main
Process: com.health.fitness.exercise, PID: 32757
java.lang.SecurityException: Permission Denial: starting Intent { act=android.health.connect.action.MANAGE_HEALTH_PERMISSIONS flg=0x10000000 cmp=com.google.android.healthconnect.controller/com.android.healthconnect.controller.PermissionControllerEntryPoint (has extras) } from ProcessRecord{e5c41b5 32757:com.health.fitness.exercise/u0a299} (pid=32757, uid=10299) requires android.permission.GRANT_RUNTIME_PERMISSIONS
at android.os.Parcel.createExceptionOrNull(Parcel.java:3069)
at android.os.Parcel.createException(Parcel.java:3053)
at android.os.Parcel.readException(Parcel.java:3036)
at android.os.Parcel.readException(Parcel.java:2978)
at android.app.IActivityTaskManager$Stub$Proxy.startActivity(IActivityTaskManager.java:3042)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1873)
at android.app.Activity.startActivityForResult(Activity.java:5780)
at androidx.activity.ComponentActivity.startActivityForResult(ComponentActivity.java:712)
at android.app.Activity.startActivityForResult(Activity.java:5738)
at androidx.activity.ComponentActivity.startActivityForResult(ComponentActivity.java:693)
at android.app.Activity.startActivity(Activity.java:6236)
at androidx.core.content.ContextCompat$Api16Impl.startActivity(ContextCompat.java:830)
at androidx.core.content.ContextCompat.startActivity(ContextCompat.java:279)
at com.health.fitness.HealthConnectActions.openSettings(HealthConnectActions.kt:93)
at com.health.fitness.UserAccountSettingsActivity.lambda$onCreate$5$com-health-fitness-UserAccountSettingsActivity(UserAccountSettingsActivity.java:99)
at com.health.fitness.UserAccountSettingsActivity$$ExternalSyntheticLambda6.onClick(D8$$SyntheticClass:0)
at android.view.View.performClick(View.java:8047)
at android.widget.TextView.performClick(TextView.java:17792)
at android.view.View.performClickInternal(View.java:8024)
at android.view.View.-$$Nest$mperformClickInternal(Unknown Source:0)
at android.view.View$PerformClick.run(View.java:31890)
at android.os.Handler.handleCallback(Handler.java:958)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:230)
at android.os.Looper.loop(Looper.java:319)
at android.app.ActivityThread.main(ActivityThread.java:8934)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:588)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)
Caused by: android.os.RemoteException: Remote stack trace:
at com.android.server.wm.ActivityTaskSupervisor.checkStartAnyActivityPermission(ActivityTaskSupervisor.java:1390)
at com.android.server.wm.ActivityStarter.executeRequest(ActivityStarter.java:1468)
at com.android.server.wm.ActivityStarter.execute(ActivityStarter.java:1073)
at com.android.server.wm.ActivityTaskManagerService.startActivityAsUser(ActivityTaskManagerService.java:1985)
at com.android.server.wm.ActivityTaskManagerService.startActivityAsUser(ActivityTaskManagerService.java:1844)
Подробнее здесь: [url]https://stackoverflow.com/questions/79499398/health-connect-error-while-programmatically-opening-the-app-settings[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия