use*_*224 6 merge android manifest
我正在尝试在Unity中组合来自2个插件的安卓清单文件,但有两个活动使用相同的intent-filter,我只能同时获得1个或另一个....
在两个冲突的活动中,清单文件中最顶层的活动是可行的活动.因此,如果清单#1中的活动位于顶部,插件#1将起作用,但不起作用#2,反之亦然.
这两个相互冲突的活动是:
<activity
android:name="com.devfo.andutils.DevfoUnityPlayerActivity"
android:label="@string/app_name"
android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)
和:
<activity android:name="com.qualcomm.QCARUnityPlayer.QCARPlayerProxyActivity"
android:label="@string/app_name" android:screenOrientation="portrait"
android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)
有什么方法可以合并这两个并让他们从同一个应用程序工作?我正在使用Unity 3d.
例如,在您只想将第一个活动用作启动器的清单中,您必须添加以下两个修改:
在清单的开头:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
Run Code Online (Sandbox Code Playgroud)
对于要删除intent过滤器的活动,请添加以下代码:
<activity android:name="com.qualcomm.QCARUnityPlayer.QCARPlayerProxyActivity"
android:label="@string/app_name" android:screenOrientation="portrait"
android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen">
<intent-filter tools:node="removeAll">
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)
重要的是在intent-filter标记中添加工具:node ="removeAll"属性
有Activity这个intent-filter:
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
Run Code Online (Sandbox Code Playgroud)
是在应用程序启动时启动的主要活动Activity,您不能使两个活动同时工作。
你应该做的就是只让一个活动(你的主要活动有这个过滤器),而让另一个活动没有它。
第二个Activity也将是应用程序的一部分,但它不会是Activity您看到的第一个。您可以使用该startActivity()方法启动它。