Вот тебе ответ от deepseek
Чтобы создать приложение для Android, которое читает уведомления, выполните следующие шаги:
1. Добавьте разрешения в `AndroidManifest.xml`:**
xml
<uses-permission android:name="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE" />
2. Создайте сервис для обработки уведомлений:**
kotlin
class NotificationService : NotificationListenerService() {
override fun onNotificationPosted(statusBarNotification: StatusBarNotification) {
val packageName = statusBarNotification.packageName
val extras = statusBarNotification.notification.extras
// Извлеките заголовок и текст уведомления
val title = extras.getString(Notification.EXTRA_TITLE)
val text = extras.getString(Notification.EXTRA_TEXT)
// Логируйте или обрабатывайте данные
Log.d("Notification", "App: $packageName, Title: $title, Text: $text")
}
override fun onListenerConnected() {
Log.d("Notification", "Служба подключена");
}
}
3. Зарегистрируйте сервис в `AndroidManifest.xml`:**
xml
<service
android:name=".NotificationService"
android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE">
<intent-filter>
<action android:name="android.service.notification.NotificationListenerService" />
</intent-filter>
</service>
4. **Запросите разрешение у пользователя:**
Добавьте кнопку в вашей активности, которая откроет настройки:
kotlin
val intent = Intent("android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS")
startActivity(intent)
### 5. **Проверьте активацию службы:**
kotlin
fun isNotificationServiceEnabled(context: Context): Boolean {
val enabledListeners = Settings.Secure.getString(
context.contentResolver,
"enabled_notification_listeners"
)
return enabledListeners?.contains(context.packageName) == true
}
### 6. **Обработка версий Android 8+ (Oreo):**
Создайте канал уведомлений для вашего сервиса:
kotlin
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
val channel = NotificationChannel(
"channel_id",
"Уведомления",
NotificationManager.IMPORTANCE_DEFAULT
)
val manager = getSystemService(NotificationManager::class.java)
manager.createNotificationChannel(channel)
}
### Важные замечания:
- Пользователь должен **вручную включить** ваше приложение в настройках уведомлений.
- На Android 10+ доступ к тексту уведомлений может быть ограничен.
- Тестируйте на реальном устройстве (эмуляторы могут работать некорректно).
Документация: [NotificationListenerService](
https://developer.android.com/reference/android/se...)