Android: Самоуправляемый ConnectionService, как реализовать действия на экране пользовательского входящего вызова - PullRequest
0 голосов
/ 20 апреля 2020

Я создаю приложение Voip в android. Все работает нормально, но я не могу понять, как принимать и отклонять вызовы.

Я использую TelephoneManager#addNewIncomingCall, чтобы сообщить о новых вызовах в систему. После этого я создал Connection объект в ConnectionService#onCreateIncomingConnection и вернул его. Вызван onShowIncomingCallUi, и я создаю уведомление следующим образом:

        val intent = Intent(context, TokboxActivity::class.java).apply {
            flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK
            this.putExtras(this@Call.extras)
        }

        val pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT)

        val notification = NotificationCompat.Builder(context, "OKDOK")
                .setSmallIcon(R.drawable.common_full_open_on_phone)
                .setContentTitle("OKDOK")
                .setContentText("Incoming call from ${extras.getString("docName")}")
                .setPriority(NotificationCompat.PRIORITY_MAX)
                .setCategory(NotificationCompat.CATEGORY_CALL)
                .setFullScreenIntent(pendingIntent, true)
                .build()

        notification.flags = notification.flags or NotificationCompat.FLAG_INSISTENT

        val notificationManager = context.getSystemService(
                NotificationManager::class.java)
        notificationManager.notify("OKDOK", 0, notification)

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

...