Для запроса разрешения я обращаюсь к примеру на официальном сайте:
class MyAccessibilityService : AccessibilityService() {
override fun onServiceConnected() {
when (ContextCompat.checkSelfPermission(
this as Context,
Manifest.permission.SYSTEM_ALERT_WINDOW
)) {
PackageManager.PERMISSION_GRANTED -> {
Log.v(TAG, "SYSTEM_ALERT_WINDOW")
}
else -> {
// You can directly ask for the permission.
requestPermissions(
MainActivity(),
arrayOf(Manifest.permission.SYSTEM_ALERT_WINDOW),
0
)
}
}
}
}
Затем он сообщил об ошибке:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.freedom.android.debug, PID: 2716
java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.pm.PackageManager android.content.Context.getPackageManager()' on a null object reference
at android.content.ContextWrapper.getPackageManager(ContextWrapper.java:98)
at android.app.Activity.requestPermissions(Activity.java:5273)
at androidx.core.app.ActivityCompat$Api23Impl.requestPermissions(ActivityCompat.java:850)
at androidx.core.app.ActivityCompat.requestPermissions(ActivityCompat.java:520)
at com.freedom.android.service.MyAccessibilityService.onServiceConnected(MyAccessibilityService.kt:215)
at android.accessibilityservice.AccessibilityService.dispatchServiceConnected(AccessibilityService.java:501)
at android.accessibilityservice.AccessibilityService.access$100(AccessibilityService.java:220)
at android.accessibilityservice.AccessibilityService$2.onServiceConnected(AccessibilityService.java:1625)
at android.accessibilityservice.AccessibilityService$IAccessibilityServiceClientWrapper.executeMessage(AccessibilityService.java:1852)
at com.android.internal.os.HandlerCaller$MyHandler.handleMessage(HandlerCaller.java:44)
at android.os.Handler.dispatchMessage(Handler.java:110)
at android.os.Looper.loop(Looper.java:219)
at android.app.ActivityThread.main(ActivityThread.java:8668)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1109)
Я думаю, что что-то не так с первым параметром requestPermissions, похоже, что MainActivity() не следует использовать.
Как правильно передать тип Activity? Можно ли в этом случае использовать MainActivity?
Что делать, если я не могу использовать MainActivity? Кстати, я использую Jetpack Compose, реальная версия устройства — Android 10.
первое редактирование
Я создал EmptyAcitivity
class EmptyActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent{
Surface(
// color = Color.Transparent
) {
Text(
fontSize = 50.sp,
modifier = Modifier.padding(2.dp),
text = "Hello World"
)
}
}
// requestPermissions(
// arrayOf(Manifest.permission.SYSTEM_ALERT_WINDOW),
// 0
// )
}
}
AndroidManifest.xml
Затем запустите его в AccessibilityService следующим образом:
startActivity(Intent(this, EmptyActivity::class.java).addFlags(FLAG_ACTIVITY_NEW_TASK))
Подробнее здесь: https://stackoverflow.com/questions/757 ... ityservice
Как запросить разрешение в AccessibilityService? ⇐ Android
Форум для тех, кто программирует под Android
-
Anonymous
1772219128
Anonymous
Для запроса разрешения я обращаюсь к примеру на официальном сайте:
class MyAccessibilityService : AccessibilityService() {
override fun onServiceConnected() {
when (ContextCompat.checkSelfPermission(
this as Context,
Manifest.permission.SYSTEM_ALERT_WINDOW
)) {
PackageManager.PERMISSION_GRANTED -> {
Log.v(TAG, "SYSTEM_ALERT_WINDOW")
}
else -> {
// You can directly ask for the permission.
requestPermissions(
MainActivity(),
arrayOf(Manifest.permission.SYSTEM_ALERT_WINDOW),
0
)
}
}
}
}
Затем он сообщил об ошибке:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.freedom.android.debug, PID: 2716
java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.pm.PackageManager android.content.Context.getPackageManager()' on a null object reference
at android.content.ContextWrapper.getPackageManager(ContextWrapper.java:98)
at android.app.Activity.requestPermissions(Activity.java:5273)
at androidx.core.app.ActivityCompat$Api23Impl.requestPermissions(ActivityCompat.java:850)
at androidx.core.app.ActivityCompat.requestPermissions(ActivityCompat.java:520)
at com.freedom.android.service.MyAccessibilityService.onServiceConnected(MyAccessibilityService.kt:215)
at android.accessibilityservice.AccessibilityService.dispatchServiceConnected(AccessibilityService.java:501)
at android.accessibilityservice.AccessibilityService.access$100(AccessibilityService.java:220)
at android.accessibilityservice.AccessibilityService$2.onServiceConnected(AccessibilityService.java:1625)
at android.accessibilityservice.AccessibilityService$IAccessibilityServiceClientWrapper.executeMessage(AccessibilityService.java:1852)
at com.android.internal.os.HandlerCaller$MyHandler.handleMessage(HandlerCaller.java:44)
at android.os.Handler.dispatchMessage(Handler.java:110)
at android.os.Looper.loop(Looper.java:219)
at android.app.ActivityThread.main(ActivityThread.java:8668)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1109)
Я думаю, что что-то не так с первым параметром requestPermissions, похоже, что MainActivity() не следует использовать.
Как правильно передать тип Activity? Можно ли в этом случае использовать MainActivity?
Что делать, если я не могу использовать MainActivity? Кстати, я использую Jetpack Compose, реальная версия устройства — Android 10.
первое редактирование
Я создал EmptyAcitivity
class EmptyActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent{
Surface(
// color = Color.Transparent
) {
Text(
fontSize = 50.sp,
modifier = Modifier.padding(2.dp),
text = "Hello World"
)
}
}
// requestPermissions(
// arrayOf(Manifest.permission.SYSTEM_ALERT_WINDOW),
// 0
// )
}
}
AndroidManifest.xml
Затем запустите его в AccessibilityService следующим образом:
startActivity(Intent(this, EmptyActivity::class.java).addFlags(FLAG_ACTIVITY_NEW_TASK))
Подробнее здесь: [url]https://stackoverflow.com/questions/75797780/how-to-request-permission-in-accessibilityservice[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия