如何在库模块的代码中获取主要的 applicationId?

Posted

技术标签:

【中文标题】如何在库模块的代码中获取主要的 applicationId?【英文标题】:How to get main applicationId inside code in the library module? 【发布时间】:2017-08-03 18:52:08 【问题描述】:

我有一个库模块,我想通过 Intent(String) 在其中添加星标服务。当我设置时:

Intent intent1 = new Intent(BuildConfig.APPLICATION_ID + ".REFRESH_DATA");

我的 BuildConfig.APPLICATION_ID 是一个库包。我的代码中需要一个变量,该变量将填充主应用程序包。

【问题讨论】:

Context 上致电getPackageName() @CommonsWare 我认为没有Context 就没有解决方案?因此,每次在 Intents 中使用参数/动作时,我都必须通过 Contextprivate static final String ACTION_LOCAL_DATA_CHANGED = ".LOCAL_DATA_CHANGED"; public static String getActionLocalDataChanged(Context context) return context.getPackageName() + ACTION_LOCAL_DATA_CHANGED; 您可以让应用程序传入包名本身。您的问题表明您要调用startService(),这意味着您已经有一个Context 【参考方案1】:

只需使用 context.getPackageName()。

https://developer.android.com/studio/build/application-id#change_the_package_name

【讨论】:

根据粘贴在我的答案上的链接,context.getPackageName() 将返回 applicationId。 我认为这不适用于多变体/风味

以上是关于如何在库模块的代码中获取主要的 applicationId?的主要内容,如果未能解决你的问题,请参考以下文章

Android Studio 的调试器不会在库模块中的断点处停止

无法在库模块中使用本地.aar文件

android:fcm在库模块中

在库模块中使用 Kotlin,而不在 app 模块中使用它

Kotlin Android Extensions 在库类型模块中不起作用

在库模块中使用 Google Play Services Gradle 插件