我希望APP1动态检索APP2的包名,即没有硬编码APP2包名。
最明显的方法是在APP2的某个组件中定义一个intent-filter,例如接收者,活动,活动别名和服务。然后,APP1将查询该特定的intent-filter,然后完成魔术。
然而,APP2只是一个资源包,实际上它的android清单在应用程序会话中声明hasCode="false"
。因此,APP2(我认为)不能使用intent-filters放置那些组件。
请记住APP2一定不能包含任何代码,有没有办法让APP1以编程方式检索APP2包名?
答案 0 :(得分:0)
我发现,即使您在AndroidManifest.xml中声明了一个活动,也可能无法在app项目中创建相应的java类。该项目编制得很好。
到目前为止,解决方案是在AndroidManifest中创建一个虚拟活动标记,声明一个intent-filter并使用此过滤器来查询此包名称。
如果您尝试使用该intent-filter启动虚拟活动,请注意可能会出现ActivityNotFoundException。
我认为这不是一个优雅的解决方案,但它现在有效。我希望你在这里发布更好的解决方案。