Intereting Posts
Мультиплатформенный MBaas похож на CloudKit? Задание зависимостей Maven в build.gradle не работает Внеэкранная рендеринг с использованием PixelBuffer или FBO для сохранения всех графических изображений в растровом (а затем в bmp / ​​jpg) желаемого размера (> 4096) с использованием OpenGL ES 2.0 Элементы меню не отображаются на панели действий Android Studio: установка завершилась неудачно, поскольку APK не был подписан Развернуть элемент ListView с анимацией Можно ли использовать криптографические функции SIM-карты? SetOrientationHint вращает видео против часовой стрелки на некоторых фронтальных камерах телефонов (HTC) Время проверки устройства Android с момента последней перезагрузки Отправка задач в пул потоков дает исключение RejectedExecutionException Android Handler меняет WeakReference Разница между инертным приложением приложения Android против службы? Обработайте клики Bluetooth-гарнитуры (ACTION_VOICE_COMMAND и ACTION_WEB_SEARCH) на Android Создание двух пользовательских кнопок Два приложения с общим идентификатором пользователя

Зачем мне нужно добавить файл конфигурации в мой проект, чтобы правильно настроить gcm?

Https://developers.google.com/cloud-messaging/android/client Я прочитал эту статью. И в нем говорится, что мне нужно загрузить и добавить файл конфигурации в мой проект. Но они не объясняют, зачем мне это делать? Не будет ли это работать без добавления файла конфигурации?

Solutions Collecting From Web of "Зачем мне нужно добавить файл конфигурации в мой проект, чтобы правильно настроить gcm?"

Я также работаю над несколькими GCM-проектами, но все еще использую Eclipse, Eclipse-ADT-plugin и старую структуру проекта, и я не включил этот конфигурационный файл в свои проекты. Я также был смущен в начале и, следовательно, попробовал его в проекте Android-Studio с использованием Gradle, но файл конфигурации также не нужен.

Поэтому ответ Rémond может иметь смысл, но для меня все работает нормально (включая создание InstanceID-Token, а также Topic-Messaging работает).

Поэтому на самом деле он должен работать без добавления файла, и вам все равно не нужен этот файл.

Если вы не создадите и не добавите в свой проект правильный файл конфигурации, то да, вы не сможете получить push-уведомление.

В предыдущей версии SDK вам нужно было настроить идентификатор senderID вручную в коде.

Теперь, с GCM 3, Google объединил способ настройки службы Google. Теперь их портал позволяет настроить все службы, которые вы хотите включить для своего приложения. После этого он создает файл конфигурации, содержащий необходимый параметр с мобильного устройства для использования службы.

Без этой информации и, прежде всего, номера проекта, Google не сможет создать InstanceID, который позволяет получать push с помощью ключа senderID и Server API. Это способ сопоставления учетных данных клиента на Android с учетными данными сервера на бэкэнд, который позволяет отправлять push-уведомления только на ваше приложение Android и ваше приложение.

Как это работает ?

Файл конфигурации используется плагином Google Gradle для Android для создания необходимых ресурсов конфигурации. Это означает, что вы используете его, если у вас есть это в файле build.gradle :

 apply plugin: 'com.google.gms.google-services' 

Затем он будет генерировать ресурс R.string.gcm_defaultSenderId который вы видите в примере кода Google GCM:

 InstanceID instanceID = InstanceID.getInstance(this); String token = instanceID.getToken(getString(R.string.gcm_defaultSenderId), GoogleCloudMessaging.INSTANCE_ID_SCOPE, null); 

Однако, если вы решите жестко закодировать SenderID в своем коде и передать его методу instanceID.getToken , то, действительно, он будет работать. Наличие файла конфигурации JSON – это удобство, предоставляемое Google. Он чище, поскольку он централизует весь ваш параметр Google Service.

Ссылка вашего приложения на project / senderID обязательна, но если вам действительно не нравится идея создания этого файла конфигурации сервера JSON Google, вы можете обойти его, поместив нужные значения в другое место вручную.