Я использую различные варианты продукта и открываю Activity через intentFilter, действие которого предварительно определено, как показано ниже.
<activity android:name=".MyActivity"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="com.package.name.MyAction"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
Для открытия этого упражнения я использую:
Intent intent = new Intent("com.package.name.MyAction");
startActivity(intent);
Теперь, если у моего устройства есть оба apk с ароматом продукта, для некоторых придет chooserустройство, чтобы открыть какое приложение активности, для некоторых устройств выдает ошибку no app found to perform the action
.
Как только я удалю одно приложение и оставлю только одно приложение на моем устройстве, все будет нормально.
Одно из решений, которое я решил преодолеть, - сделать действие постоянным как Intent intent = new Intent("com.package.name.MyAction");
context.startActivity(intent);
динамическим.Но я не уверен, как я могу это сделать.
Я AndroidManifest, это должно быть что-то вроде:
<action android:name="com.package.name.MyAction"+getString(R.string.product_name)/>
В этой части я не могу получить строку в AndroidMaifest
.
Для открытия действия, которое я сделал:
Intent intent = new Intent("com.package.name.MyAction"+getString(R.string.product_name));
startActivity(intent);
Любая помощь будет оценена, спасибо.