Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Приложение, которое будет на ПК уведомлять об уведомлениях на телефоне - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Как найти информацию об api webkit'a из android studio? http://www.cyberforum.ru/android-dev/thread1633297.html
Как найти информацию об api webkit'a из android studio? Как называется этот браузер?
Программирование Android Android Studio на ubuntu нужно запусктаь от рута? Ну чтобы там всякие opengl usb нормально работали...? http://www.cyberforum.ru/android-dev/thread1633258.html
У кого свои приложения в play market Программирование Android
Сколько заработали на продажах, опишите подробно.
Программирование Android Опрос разработчиков: гаджет USB vs гаджет WiFI ADB vs эмулятор
Давно мечтаю узнать как ДРУГИЕ работают... Хотел серию голосований здесь провести, но админы сайта (увы) не ответили... хотел галочками в статистику (вопросов 10-15 уже набралось) Итак... 1) Кто...
Программирование Android Эффект нажатия кнопки http://www.cyberforum.ru/android-dev/thread1633178.html
Заметил такую штуку, если кнопка Button так сказать "чистая" только перетащенная на форму то при клике на нее присутствует эффект нажатия, а вот если у Button установлен цвет и картинка, то при клике...
Программирование Android Как сделать так, чтобы в Status bar все уведомления от определённого приложения появлялись под одной иконкой? Здравствуйте, Делаю приложение для android 4. Сервис периодически генерит уведомления в Status bar. Все работает. Сейчас у меня это выглядит так: приходит уведомление, появляется иконка в Status... подробнее

Показать сообщение отдельно
Pablito
2476 / 1960 / 611
Регистрация: 12.05.2014
Сообщений: 6,863
Завершенные тесты: 1
08.01.2016, 16:10
Я оставлю тут куски кода, вдруг кому-то пригодится.
1. заводим accessibility service, назовем его для примера NotificationCatcher
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import android.accessibilityservice.AccessibilityService;
import android.accessibilityservice.AccessibilityServiceInfo;
import android.util.Log;
import android.view.accessibility.AccessibilityEvent;
 
public class NotificationCatcher extends AccessibilityService {
 
    @Override
    public void onAccessibilityEvent(AccessibilityEvent event) {
        if (event.getEventType() == AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED) {
            final String packagename = String.valueOf(event.getPackageName());
            Log.i("***", "onAccessibilityEvent " + packagename);
        }
    }
 
    @Override
    public void onInterrupt() {
    }
 
    @Override
    protected void onServiceConnected() {
        Log.i("***", "onServiceConnected ");
        AccessibilityServiceInfo info = new AccessibilityServiceInfo();
        info.eventTypes = AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED;
        info.notificationTimeout = 100;
        info.feedbackType = AccessibilityEvent.TYPES_ALL_MASK;
        setServiceInfo(info);
    }
}


2. Прописываем его в манифест
Кликните здесь для просмотра всего текста
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
        <service
            android:name=".NotificationCatcher"
            android:label="Notification catch service"
            android:enabled="true"
            android:exported="false"
            android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE">
            <intent-filter>
                <action android:name="android.accessibilityservice.AccessibilityService" />
            </intent-filter>
            <meta-data
                android:name="Any.Unique.Name"
                android:resource="@xml/notif_catcher" />
        </service>


3. в папке res/xml создаем файл notif_catcher.xml
Кликните здесь для просмотра всего текста
XML
1
2
3
4
5
<?xml version="1.0" encoding="utf-8"?>
<accessibility-service xmlns:android="http://schemas.android.com/apk/res/android"
    android:accessibilityEventTypes="typeNotificationStateChanged"
    android:accessibilityFeedbackType="feedbackAllMask"
    android:notificationTimeout="100" />


4. в onCreate() главной активити запускаем сервис
Кликните здесь для просмотра всего текста
Java
1
2
        Intent intent = new Intent(MainActivity.this, NotificationCatcher.class);
        startService(intent);


После запуска приложения на телефоне в Setting - Accessibility появится новая служба с названием "Notification catch service" (которое мы прописали в манифесте).
Эту службу надо ручками запустить. Наверняка есть способ стартовать ее из проложения, но мне было лень копать дальше. Я удовлетворился вариантом с ручным стартом.

Все. Теперь после старта приложения оно будет следить за нотификациями.
По прибытии уведомления в сервисе будет срабатывать метод onAccessibilityEvent()

PROFIT
Дальше самостоятельно )
4
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru