Я работаю над приложением и хочу интегрировать Последнее .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 для справки.
Спасибо за чтение, Тони
Да, это возможно, но вам нужно знать правильное имя компонента. Регулярно запускайте приложение 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);