Как вызвать номеронабиратель из службы?

Я использую этот этот пример номеронабирателя в качестве подвала. Я добавил некоторую услугу (передний план), откуда я должен набрать вызов. Как я могу это сделать?

У меня есть это в службе (onStartCommand)

    if (checkSelfPermission(this, CALL_PHONE) == PERMISSION_GRANTED) {
        val uri = "SOMENUMBER".toUri()
        startActivity(Intent(Intent.ACTION_CALL, uri).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK))
    }

Но я не работаю в сервисе. Журнал ошибок:

Process: *.*.*, PID: 2789
java.lang.RuntimeException: Unable to start service *.*.*.*.Service@ab2ea53 with Intent { cmp=*.*.*/.*.Service (has extras) }: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.CALL dat=PHONENUMBER flg=0x10000000 }

Что я должен сделать, чтобы заставить его работать? И какие способы правильнее(если mays>1)?


person Cacarilo    schedule 30.10.2019    source источник


Ответы (1)


"SOMENUMBER".toUri()

должно быть

"tel:SOMENUMBER".toUri()

https://developer.android.com/reference/android/content/Intent.html#ACTION_CALL

Ввод: Если ничего, запускается пустая звонилка; иначе getData() — это URI телефонного номера, который нужно набрать, или tel: URI явного телефонного номера.

Другие сопутствующие вопросы:

Намерение вызова в Android

Android Intent.ACTION_CALL, Ури

person Blundell    schedule 30.10.2019