Ошибка Appcelerator Push Notification только на Android

Титаниум версия: 3.1.3.

Я все еще использую MQTT для Android, и все работало нормально до нескольких недель назад (возможно, до тех пор, пока mqtt на acs не устарел). Но я читал, что можно еще использовать MQTT (вместо gcm). Согласно другому сообщению на appcelerator, мне просто нужно было определить mqtt в tiapp.xml, но это не работает.

Это часть моего tiapp.xml

<property name="acs-push-type-development" type="string">mqtt</property>
<property name="acs-push-type-production" type="string">mqtt</property>
<property name="acs-push-type" type="string">mqtt</property>
...
<module platform="android" version="2.3.2">ti.cloudpush</module>
<module platform="android" version="2.1.2">ti.map</module>
<module platform="commonjs" version="2.3.7">ti.cloud</module>

Вот что я получаю из журналов appcelerator:

`"response": {"push_log_details": [
    {
    "created_at": "2014-05-12T13:02:35.389Z",
    "updated_at": "2014-05-12T13:02:31.094Z",
    "type": "android",
    "android_type": 1,
    "app_id": "52724d7cd72ec85152039256",
    "channel": "stickin",
    "_id": "5370c66be511ea7ab99881d4",
    "token": "ND1M2IX8RU8RGJDICW13I9V",
    "push_id": "5370c6641316e90db2311567",
    "send_status": 2,
    "sent_at": "2014-05-12T13:02:30.996Z",
    "error_message": "argument cannot be null",
    "msg_id": "fa89cfb6-f2d2-4222-b442-a47d2625b419"
    },
    {
    "created_at": "2014-05-12T13:02:35.389Z",
    "updated_at": "2014-05-12T13:02:31.094Z",
    "type": "android",
    "android_type": 1,
    "app_id": "52724d7cd72ec85152039256",
    "channel": "stickin",
    "_id": "5370c66be511ea7ab99881d6",
    "token": "ND13ST3OA0MHE079H6EYV8P",
    "push_id": "5370c6641316e90db2311567",
    "send_status": 2,
    "sent_at": "2014-05-12T13:02:30.996Z",
    "error_message": "argument cannot be null",
    "msg_id": "77fc5c7f-9703-46e5-a433-7be0796421f2"
    }, .....
`

«аргумент не может быть нулевым» выглядит как код ответа gcm. Я попытался удалить apiKey и идентификатор отправителя gcm и сохранить только имя пакета приложения (MQTT), но затем получаю сообщение об ошибке gcm_apiKey is null. Я думал, что push не использует gcm, если я определяю mqtt в tiapp.xml? Кстати, на iOS все работает нормально, но там, конечно, не используется mqtt.


person user3157669    schedule 12.05.2014    source источник


Ответы (1)


Проверьте следующее

  1. Версия модуля CloudPush, которую вы используете, должна быть ниже 3.2.0.

  2. Вы должны указать «android» в качестве типа при подписке на push-уведомление. (в случае GCM вы должны использовать «gcm»)

Однако Appcelerator прекратил поддержку MQTT с 15 марта 2014 г.. Таким образом, последние модули CloudPush больше не будут поддерживать MQTT. См. скриншот ниже. Вы можете увидеть это на сервере ACS. Вам нужно обновить приложение до GCM, чтобы исправить проблемы, а обновление до GCM довольно просто. Я уже сделал это раньше. Я предлагаю вам обновить приложение до поддержки GCM.

Снимок экрана

Также посетите Android Push-уведомление: отказ от MQTT в пользу GCM в блоге Appcelerator.

person Anand    schedule 14.05.2014
comment
Спасибо за ваш ответ, версия модуля CloudPush такая же, как используемая версия титана? если нет, то где я могу проверить версию модуля CloudPush? я использовал титаниум 3.1.3. подписка была определенно правильно сделана - person user3157669; 19.05.2014
comment
Необязательно использовать ту же версию, что и TiSDK. Но если вы планируете продолжить работу с MQTT, вам следует использовать модуль CloudPush ниже 3.2.0. Начиная с самой версии 3.2.0, Appcelerator не поддерживает MQTT. Вы можете изменить версию модуля в файле tiApp.xml. - person Anand; 20.05.2014
comment
Модуль CloudPush ниже 3.2.0 ‹платформа модуля=версия Android=2.3.2›ti.cloudpush‹/module› - person user3157669; 20.05.2014
comment
Пожалуйста, попробуйте обновить модуль до 3.x, вы можете изменить его в tiapp.xml. Выберите версию модуля из списка, отображаемого в файле tiapp.xml. - person Anand; 20.05.2014
comment
это тоже не сработало, но спасибо за попытку. я все равно скоро пересяду на городской дирижабль. - person user3157669; 23.05.2014
comment
@ user3157669: Пожалуйста. Почему вы не используете GCM? - person Anand; 23.05.2014