使用特定应用程序打开 android 意图(包名称已知)

Open android intent using a specific application(package name known)

我的问题是我有这样的意图。

Intent intent = new Intent(MediaStore.INTENT_ACTION_MEDIA_PLAY_FROM_SEARCH);     
intent.putExtra(MediaStore.EXTRA_MEDIA_FOCUS, MediaStore.Audio.Artists.ENTRY_CONTENT_TYPE);        
intent.putExtra(MediaStore.EXTRA_MEDIA_ARTIST, artist);     
intent.putExtra(SearchManager.QUERY, artist);
if(intent.resolveActivity(getPackageManager()) != null)
{
startActivity(intent);
}

当我测试应用程序时,它要求打开。 因此,如果我打开标准音乐 android 应用程序,它不会打开,但当我使用 Google 音乐时,它就像一个魅力。

因此,如果别无选择,我必须使用 Google 音乐,因为没人能回答 this 问题,我猜这是我不知道的问题。但至少有一种方法可以将其设置为仅通过 Google 音乐应用程序打开。就像将 googlw music 设置为默认应用程序以打开仅由我的应用程序发送的特定意图而不损害任何其他进程。

我是 Android 的初学者。请。请。帮帮我。

它是如何工作的。

我在一篇关于堆栈溢出的文章中读到了我不知道是哪一篇。但是,有人提到要限制发送意图,您可以使用 intent.setClass 但是它需要知道 activity 名称以及包名称。但是我不知道 activity 这个名字。所以凭直觉我尝试使用 intent.setPackage 并且 Boom 它起作用了。还要感谢giorashc的努力