Интеграция FCM в приложение Android, которое использует сборку Android.Mk - PullRequest
0 голосов
/ 20 ноября 2018

Я хотел интегрировать приложение FCM в Android, которое использует систему сборки Android.mk, в сборку фреймворка

Есть ли альтернатива использованию "применить плагин: 'com.google.gms.google-services'"в Andorid.mk или Android.bp другая система сборки?

1 Ответ

0 голосов
/ 20 ноября 2018

Плагин, по сути, выполняет синтаксический анализ вашего google-services.json файла и копирует значения в нем в файл ресурсов XML.Затем он внедряет некоторый код в ваш проект, который позаботится о том, чтобы вы вызывали FirebaseApp.initializeApp.

Вы, конечно, можете сделать все это самостоятельно, если хотите.

В вашем AndroidManifest.xml:

<provider
  android:authorities="yourapp.package.name.myFcmInitProvider"
  android:name=".MyFcmInitProvider"
  android:exported="false" />
<!-- Make sure that Google's FirebaseInitProvider isn't included in your app -->
<provider
  android:name="com.google.firebase.provider.FirebaseInitProvider"
  android:authorities="yourapp.package.name.firebaseinitprovider"
  android:exported="false"
  tools:node="remove" />

MyFcmInitProvider.kt:

class MyFcmInitProvider : ContentProvider() {
    override fun onCreate(): Boolean {
        // Application ID can be found in google-services.json.
        // Add additional credentials as necessary.
        val builder = FirebaseOptions.Builder().setApplicationId(myApplicationId)
        if (null == FirebaseApp.initializeApp(context, builder.build())) {
            // Initialization failed
        }
        return false
    }   

    // Required overrides
    override fun getType(uri: Uri?): String? = null
    override fun delete(uri: Uri?, selection: String? selectionArgs: Array<out String>?): Int = 0
    override fun update(uri: Uri?, values: ContentValues?, selection: String?, selectionArgs: Array<out String>?): Int = 0
    override fun insert(uri: Uri?, values: ContentValues?): Uri? = null
    override fun query(uri: Uri?, projection: Array<out String>?, selection: String?, selectionArgs: Array<out String>?, sortOrder: String?): Cursor? = null
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...