[ОБНОВЛЕНИЕ]
(когда вы читаете мой вопрос, это полезно знать)
У меня была небольшая программная ошибка, и теперь она работает. Однако оба приложения на телефоне получают одно и то же сообщение, так что я что-то забыл сделать
[КОНЕЦ ОБНОВЛЕНИЯ]
У меня есть приложение c2dm и сервер, настроенный на месяц, и все работает отлично. У меня зарегистрировано 14 пользователей/друзей и все пуш работает находит
Я столкнулся с некоторыми проблемами, когда создал песочницу на другом компьютере, на котором запущена следующая версия приложения и сервера.
В песочнице я изменил имя пакета в приложении.
На моем телефоне у меня установлены обе версии — нормально и денди.
Единственная разница в том, что приложение версии песочницы взаимодействует с сервером песочницы (конечно).
> почему неправильное приложение c2dm на моем телефоне получает сообщение?
Теперь, почему сообщения из приложения-песочницы принимаются приложением, не являющимся песочницей?
Программисту-любителю вроде меня иногда трудно понять документацию по c2dm.
Меня смущают:
public static final String EXTRA_APPLICATION_PENDING_INTENT = "app";
Должен ли я писать имя пакета здесь? Что-то должно однозначно идентифицировать два приложения, верно?
Еще одна вещь, по которой я не могу найти ответ/документацию, — это Registration_id.
Я полагаю, что телефон имеет только один Registration_id, но может иметь несколько приложений c2dm?
Это было мое предположение, с удовольствием поправьте меня, если я ошибаюсь.
я запутался, если проблема в том, как я обрабатываю Registration_id или в том, как я отправляю push-сообщения. не знаю, с чего начать здесь?
[ОБНОВИТЬ]...
<receiver android:name="com.google.android.c2dm.C2DMBroadcastReceiver"
android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<!-- Receive the actual message -->
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="com.bent.blaster" />
</intent-filter>
<intent-filter>
<!-- Receive the registration id -->
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name="com.bent.blaster" />
</intent-filter>
</receiver>
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.bent.blaster"
android:versionCode="1"
android:versionName="0.52"
android:installLocation="preferExternal">
<permission android:name="com.bent.blaster.permission.C2D_MESSAGE" android:protectionLevel="signature" />
<uses-permission android:name="com.bent.blaster.permission.C2D_MESSAGE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-sdk android:minSdkVersion="8" />