Я хотел бы показывать полноэкранное уведомление, когда мое приложение получает входящий звонок.
По сути, то же самое, что и WhatsApp, т.е. когда телефон получил уведомление, а приложение не запускается, я хочу показать представление (активность, уведомление, как бы вы его ни называли), которое занимает полный размер экрана.
Все работает, кроме одного вещь: «представление» никогда не отображается в полноэкранном режиме, а только как классическое уведомление.
Вот мой код, довольно простой.
Может ли кто-нибудь указать на какую-либо проблему в нем? Я пропустил какое-то разрешение или что-то в этом роде?
Буду рад любой помощи.
Intent incomingCallDialog = new Intent(context, IncomingCallActivity.class);
incomingCallDialog.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
incomingCallDialog.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
if (context.getApplication() != null && ((MyApplication) context.getApplication()).getCurrentActivity() == null) {
PendingIntent fullScreenPendingIntent = PendingIntent.getActivity(context, 0,
incomingCallDialog, PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE);
NotificationCompat.Builder notificationBuilder =
new NotificationCompat.Builder(context);
notificationBuilder.setSmallIcon(R.mipmap.ic_launcher);
notificationBuilder.setContentTitle(context.getString(R.string.incoming_call_from, email));
notificationBuilder.setLargeIcon(BitmapFactory.decodeResource(context.getResources(), R.mipmap.ic_launcher));
notificationBuilder.setContentText(caller.getName());
notificationBuilder.setPriority(NotificationCompat.PRIORITY_MAX);
notificationBuilder.setCategory(NotificationCompat.CATEGORY_CALL);
notificationBuilder.setFullScreenIntent(fullScreenPendingIntent, true);
notificationBuilder.setContentIntent(fullScreenPendingIntent);
notificationBuilder.setTimeoutAfter(30 * 1000);
notificationBuilder.setAutoCancel(true);
notificationBuilder.setWhen(0);
NotificationManager manager = (NotificationManager) context.getSystemService(NOTIFICATION_SERVICE);
String channelId = "my_channel";
NotificationChannel channel = new NotificationChannel(
channelId,
"channelname",
NotificationManager.IMPORTANCE_HIGH);
channel.setLockscreenVisibility(Notification.VISIBILITY_PUBLIC);
manager.createNotificationChannel(channel);
notificationBuilder.setChannelId(channelId);
manager.cancel(NOTIFICATION_CALL_ID);
manager.notify(NOTIFICATION_CALL_ID, notificationBuilder.build());
} else {
context.startActivity(incomingCallDialog);
}
Подробнее здесь: https://stackoverflow.com/questions/746 ... background
Android: показывать полноэкранное уведомление, когда приложение находится в фоновом режиме ⇐ Android
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение