Я хочу запустить определенное c действие другого приложения из моего приложения. Например, в onCreate
моего приложения я хочу запустить действие с именем Rolling
(не основное) действие com.pas.webcam.pro
. Я слышал, что для этого у вас должен быть контроль над обоими приложениями, потому что вы должны добавить фильтр намерений в манифест второго приложения. Это неправда, потому что приложения для запуска действий в магазине Google Play могут запускать непрерывную активность IP Webcam Pro.
Приложение Activity Launcher является открытым исходным кодом, поэтому я попытался просмотреть исходный код здесь . Однако это было слишком сложно, поэтому я не мог понять, как это приложение волшебным образом запускает это действие. Есть много других подобных вопросов о переполнении стека, и я прочитал каждый из них. Я также пробовал много кода из ответов, например:
Intent intent = new Intent(); intent.setComponent(new ComponentName("com.pas.webcam", "com.pas.webcam.RollingActivity")); startActivity(intent);
Я также пробовал варианты этого кода из других сообщений. Мое приложение всегда дает сбой, и я получаю варианты (в зависимости от используемого кода) следующая ошибка :
Произошла ошибка
Недействительная операция намерения. Невозможно найти явный класс активности {com.pas.webcam.pro/com.pas.webcam.pro.Rolling}; объявили ли вы это действие в своем AndroidManifest. xml?
Я поместил оба следующих элемента в свой Android манифест, и происходит то же самое:
<uses-permission android:name="android.permission.GET_INSTALLED_PACKAGES" />
<activity android:name="com.pas.webcam.pro.RollingActivity"
Заранее спасибо за любые ответы, я очень ценю это, так как я уже некоторое время работаю над этой проблемой.
Редактировать: Вот активность приложения, которое я хочу запустить: https://i.stack.imgur.com/Fa7Xq.jpg
Изменить: Дэвид Вассер помог мне решить проблему, предоставив мне код, необходимый для решения проблемы. Это действительно работает! Всем, кто хочет запустить определенное c действие другого приложения с кодом, используйте это:
Intent intent = new Intent(); intent.setClassName("com.pas.webcam.pro", "com.pas.webcam.Rolling"); startActivity(intent);
Вы можете заменить com.pas.webcam.pro и Rolling на приложение и действие по вашему выбору, но этот метод действительно работает. Проблема решена! ?