Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

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

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

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

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

Файл конфигурации используется плагином google-services Gradle для создания необходимых ресурсов конфигурации. Это означает, что вы используете его, если у вас есть это в вашем файле 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, вы можете обойти его, добавив нужные значения в другое место вручную.