Форум программистов, компьютерный форум 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) Кто чем пользуется из перечисленного в заголовке темы для отладки программ? Если не секрет.... Я - в основном WiFi ADB... привык в руках держать устройство (телефон/планшет) отключая от проводов чтобы...
Программирование Android Эффект нажатия кнопки http://www.cyberforum.ru/android-dev/thread1633178.html
Заметил такую штуку, если кнопка Button так сказать "чистая" только перетащенная на форму то при клике на нее присутствует эффект нажатия, а вот если у Button установлен цвет и картинка, то при клике эффекта нажатия нет, можно как-то "включить" эффект нажатия на кнопке с установленным фоном и картинкой?
Программирование Android Как сделать так, чтобы в Status bar все уведомления от определённого приложения появлялись под одной иконкой? Здравствуйте, Делаю приложение для android 4. Сервис периодически генерит уведомления в Status bar. Все работает. Сейчас у меня это выглядит так: приходит уведомление, появляется иконка в Status bar. Приходит второе уведомление, появляется вторая такая же иконка в Status bar. Разворачиваю Status bar все хорошо. А как мне сделать чтобы при приходе второго и более уведомления в Status bar не... подробнее

Показать сообщение отдельно
Pablito
2455 / 1900 / 591
Регистрация: 12.05.2014
Сообщений: 6,702
Завершенные тесты: 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
Дальше самостоятельно )
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru