Android: запуск операции для Другое стороннее приложение

Я работаю над приложением и хочу интегрировать Последнее .fm приложение в него. По сути, когда кто-то смотрит на художника в моем приложении, я хотел бы иметь кнопку, которую он может нажать, чтобы открыть Last. Приложение fm с информацией об исполнителе.

Это намерение работает, но оно загружает меню с вопросом, какое приложение я хотел бы использовать (Browser или Last.fm):

Intent i = new Intent();
i.setData(Uri.parse("http://last.fm/music/" + headliner));
i.setAction("android.intent.action.VIEW");
startActivity(i);

Однако я просто хочу запустить приложение Last.fm и пропустить диалог, спрашивая, какое приложение использовать, я подумал, что, возможно, использование метода setPackage () будет работать так:

i.setPackage("fm.last.android");

Но это приводит к сбою приложения:

android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=http://last.fm/music/Rihanna pkg=fm.last.android }

Можно ли просто запустить приложение Last.fm? Вот копия AndroidManifest.xml на Last.fm для справки.

Спасибо за чтение,

i.setPackage("fm.last.android");

Но это вызывает сбой приложения:

android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=http://last.fm/music/Rihanna pkg=fm.last.android }

Можно ли просто запустить приложение Last.fm? Вот копия AndroidManifest.xml на Last.fm для справки.

Спасибо за чтение,

i.setPackage("fm.last.android");

Но это вызывает сбой приложения:

android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=http://last.fm/music/Rihanna pkg=fm.last.android }

Можно ли просто запустить приложение Last.fm? Вот копия AndroidManifest.xml на Last.fm для справки.

Спасибо за чтение, Тони

7
задан tonyc 19 August 2010 в 03:00
поделиться

1 ответ

Да, это возможно, но вам нужно знать правильное имя компонента. Регулярно запускайте приложение last.fm и проверяйте файл журнала на наличие информации cmp = ..., которая использовалась при запуске приложения. Тогда используйте это также в своем приложении.

Я без проблем запускаю приложение Z-DeviceTest из магазина из моего приложения:

final Intent intentDeviceTest = new Intent("android.intent.action.MAIN");                
intentDeviceTest.setComponent(new  ComponentName("zausan.zdevicetest","zausan.zdevicetest.zdevicetest"));
startActivity(intentDeviceTest);

в моем случае информация, которую я взял из logcat, была:

// dat = content: // applications /applications/zausan.zdevicetest/zausan.zdevicetest.zdevicetest

// cmp = zausan.zdevicetest / .zdevicetest

, чтобы узнать, как запустить приложение с правильным компонентом / классом ... сделайте то же самое для приложение last.fm

Редактировать: Я тестировал запуск Last.fm из моего собственного приложения, и он отлично работает без каких-либо ошибок:

final Intent intentDeviceTest = new Intent("android.intent.action.MAIN");                
intentDeviceTest.setComponent(new ComponentName("fm.last.android","fm.last.android.LastFm"));
startActivity(intentDeviceTest);
14
ответ дан 6 December 2019 в 15:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: