如何在库模块的代码中获取主要的 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 中使用参数/动作时,我都必须通过 Context
:private 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 的调试器不会在库模块中的断点处停止