Страница 1 из 1

Local notifications для Android

СообщениеДобавлено: 10 ноя 2014, 14:39
Maklaud
Всем привет!

Кто-нибудь делал сабж? Меня интересуют сообщения, посылаемые игрой в нотиф. панель телефона по расписанию. Я уже перерыл кучу всего - это, это, это и многое другое. Делаю java (один или несколько), с помощью командной строки jar cf ... собираю jar файл, кладу его в Plugins/Android, правлю манифест (разные варианты пробовал), загружаю игру, жму нужную кнопку (она должна вызвать метод java) и ничего не происходит. Я вообще не понимаю, работает там все или нет. Работаю с помощью apk, ставлю его на телефон, потому не могу логи посмотреть.

Может кому-то удалось заставить это работать?

Re: Local notifications для Android

СообщениеДобавлено: 17 ноя 2014, 19:33
Maklaud
Неужели никто не делал ничего подобного?

Re: Local notifications для Android

СообщениеДобавлено: 18 ноя 2014, 19:09
Maklaud
Немного поотлаживав, я понял, что у меня объект из класса java не получается. Беру пример отсюда http://myunitynotes.wordpress.com/2014/08/08/test/
Делаю 1 java файл с обоими классами, из него в командной строке (без Эклипса) собираю jar командой "jar cf <jar name> <java name>". Затем кладу jar в Assets/Plugins/Android. В результате метод в коде m_AndroidJavaObject = new AndroidJavaObject("com.myuselesswork.plugin.Yapee"); ничего не дает, объект все равно null.

Кто-нибудь знает, в чем может быть проблема? Может нельзя так jar собирать? Но я этот способ нагуглил. Или я неправильно добавляю файл в проект? Или еще что?

Re: Local notifications для Android

СообщениеДобавлено: 22 дек 2014, 20:21
Maklaud
Есть результат. Я неверно собирал jar файл. Нужно полносью следовать инструкции из того поста (там еще и обновления есть после моих вопросов автору).

Но вот теперь проблема - нотификации не отменяются. Я создаю одну, она точно запускается. В другой раз я пытаюсь ее отменить, вызывая NotificationManager.cancelAll, но она все равно отображается. Метод не работает как будто.

Re: Local notifications для Android

СообщениеДобавлено: 24 дек 2014, 16:45
V0odo0
Нужны Push сообщения? Есть готовые решения, например https://www.gamethrive.com/

Re: Local notifications для Android

СообщениеДобавлено: 28 янв 2015, 00:01
Maklaud
Уж и не думал, что кто-то ответит ))
Нет, мне не пуш нужны, а простые нотификации. Вроде это разные вещи (мне так говорили). В целом они готовы у меня. Не работает только очистка почему-то. Нотификация создается, через время отображается. Но если игрок вошел в игру, я хочу их удалять из очереди на отображение - это не работает.

Re: Local notifications для Android

СообщениеДобавлено: 28 янв 2015, 13:19
[bm]
Делал по твоей первой ссылке, все работает. А почему не можешь логи глянуть? Включи режим отладки в телефоне.

Re: Local notifications для Android

СообщениеДобавлено: 28 янв 2015, 16:21
Maklaud
Я сделал по уроку из 2й ссылки. Работает отправка, но не работает очистка.
Где смотреть логи? Я не разрабатывал на java, потому не знаю, что там как. Т.е. дебажную информацию вроде можно писать в лог, а где и как потом смотреть?
А проверяю не совсем в режиме разработки. Ставлю свой apk и запускаю игру.

Re: Local notifications для Android

СообщениеДобавлено: 30 янв 2015, 22:49
tarasevih
Подпишусь !

Re: Local notifications для Android

СообщениеДобавлено: 31 янв 2015, 20:20
Maklaud
Мне кажется, у меня получилось разобраться. Бегло потестил - то, что надо. Но еще буду тестить более досконально. Проблема была в том, что я пытался очищать нотификации у NotificationManager, как в уроке (2я ссылка в моем первом посте). А надо очищать у AlarmManager, т.к. именно он задает "будильник" на отображение нотификации через время. Вот мой код java, может кому-то пригодится:

Синтаксис:
Используется javascript
public void SheduleNotification(String name, String title, String label, int milliseconds) {
        Long time = new GregorianCalendar().getTimeInMillis() + milliseconds;

        AlarmManager alarmManager = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);

        Intent intentAlarm = new Intent(context, AlarmReceiver.class);
        // Name of the notification (shows in the top line).
        intentAlarm.putExtra("name", name);
        // Title of the notification.
        intentAlarm.putExtra("title", title);
        // Text of the notification.
        intentAlarm.putExtra("label", label);

        alarmManager.set(AlarmManager.RTC_WAKEUP, time, PendingIntent.getBroadcast(context, 1000, intentAlarm, PendingIntent.FLAG_UPDATE_CURRENT));
}

public void ClearNotification() {
        AlarmManager alarmManager = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
        Intent intentAlarm = new Intent(context, AlarmReceiver.class);
        alarmManager.cancel(PendingIntent.getBroadcast(context, 1000, intentAlarm, 0));
}
 

Re: Local notifications для Android

СообщениеДобавлено: 02 апр 2015, 14:09
c0nail
Вроде все ок работает, но есть одно но, когда создаю сразу несколько notification то они перетераются и приходит только последняя... что надо сделать чтоб была очередь из них? Уже решил с помощью
alarmManager.set(AlarmManager.RTC_WAKEUP, time, PendingIntent.getBroadcast(context, id, intentAlarm, PendingIntent.FLAG_UPDATE_CURRENT)); внедряешь ид и все окей

Re: Local notifications для Android

СообщениеДобавлено: 18 окт 2017, 13:07
Lucas
Сделал ассет для локальных нотификаций, универсальный для Android и iOS https://www.assetstore.unity3d.com/en/#!/content/99744