0

我已将现有应用程序提取到库项目中,因此可以构建多个目标。应用程序使用动作名称而不是显式的类名称连接在一起。每个目标显然都有自己的 AndroidManifest.xml 文件,其中动作名称映射到类名称。

不幸的是,当同一设备上有两个这样的构建目标时,执行一个操作意味着提示用户是使用 App A 还是 App B 完成该操作。

我怎样才能阻止这种情况发生?我尝试将活动定义导出属性设置为 false。这似乎没有帮助。

我想我可以用包前缀限定 action android:name 属性,但这感觉不对。当然有一种方法可以限制它,以便只解析当前应用程序中定义的操作,或者更确切地说,给定名称的操作不会暴露在应用程序之外?

    <activity android:exported="false"
         android:name="uk.myco.activities.EditChildFieldsActivity" 
         android:label="@string/app_name">
        <intent-filter>
            <action android:name="EditChildFields" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
4

1 回答 1

0

根据上述评论,在我的情况下添加

intent.setPackage(getApplicationContext().getPackageName())

已经达到了预期的效果。

于 2013-02-05T12:01:31.950 回答