我试图做一个应用程序,自动启动你选择的音乐播放器,当耳机插入。为了工作,当用户插入耳机时,我想在他们的手机上显示所有的应用程序,这样他们就可以点击默认的音乐播放器,如狂想曲、Spotify等。因为每个人都有不同的音乐应用程序。我不能使用一个意图来启动仅仅的包名称,因为它可能对每个人都不一样。有没有一个意图显示所有的应用程序,以便用户可以选择他们的默认应用程序。谢谢。
我想的另一种方法是在手机上的列表视图中搜索特定的第三方应用程序,然后将其设置为默认值。
我试图使用的代码,代码需要在案例1中工作
private class MusicIntentReceiver extends BroadcastReceiver {
@Override public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(Intent.ACTION_HEADSET_PLUG)) {
int state = intent.getIntExtra("state", -1);
switch (state) {
case 0:
Log.d(TAG, "Headset is unplugged");
break;
case 1:
final PackageManager pm = getPackageManager();
List<ApplicationInfo> packages = pm.getInstalledApplications(PackageManager.GET_META_DATA);
for (ApplicationInfo packageInfo : packages) {
Log.d(TAG, "Installed package :" + packageInfo.packageName);
Log.d(TAG, "Source dir : " + packageInfo.sourceDir);
Log.d(TAG, "Launch Activity :" + pm.getLaunchIntentForPackage(packageInfo.packageName));
}
break;
default:
Log.d(TAG, "I have no idea what the headset state is");
}
}
}
}
你可以查询系统
public static boolean isSupportedIntent(@NonNull final Intent intent, @NonNull @ApplicationContext final Context applicationContext) {
Preconditions.checkNotNull(intent);
Preconditions.checkNotNull(applicationContext);
//
final List<ResolveInfo> list = applicationContext.getPackageManager().queryIntentActivities(intent,
PackageManager.MATCH_DEFAULT_ONLY);
return !list.isEmpty();
}
因此,您可以返回ResolveInfo以获取更多信息,而不是返回布尔值
运行时 当前的spring boot应用程序可以用当前的URL在浏览器中打开 但不是
问题内容: 我在用Maven或Eclipse编译一些Scala时遇到问题,我尝试从Java jar导入一个包含名称空间和同名类的类。 我可以用编译。 例如,Java项目(jar)包含: 编译器抱怨: 在Scala 2.9.0.1(和)中使用Maven 3.0.03 / Eclipse 3.7.1 。 我遇到问题的jar是-它肯定包含几个实例,其中存在同名的名称空间和对象。 我正在尝试在Scala中
我希望能够得到字符串包名称和图标的所有应用程序安装在我的手机上。我所做的:浏览并找到了这个解决方案 问题是,它将包和类名混合显示,而我无法获取图标。我想要的是向用户显示手机上安装的所有应用程序的列表和图标。我还需要能够获得带有。我假设使用一系列应用程序名和包名,它们的位置相同,我就可以做到这一点。但是我怎样才能用软件包名获得应用程序图标和名称呢。最好是作为数组或ArrayList,我可以将其转换为
我试图从我的flutter启动第三方应用,但我没有任何进展。在这种情况下,我试图通过单击Flutter中凸起的按钮打开应用程序“Amazon Alexa”。有人能帮我吗? 我试图使用url_launcher,但它无法与第三方应用程序配合使用。
FreeBSD 的发行版中, 可能有某些部分包含在 FreeBSD 项目之外活跃地维护着的软件。由于历史原因, 我们将其称为 contributed 软件。 举例说来, 有 sendmail、 gcc 和 patch 等等。 在过去几年中, 我们尝试了许多不同的方法来处理这类软件, 这些方法都各有利弊, 因而也就没有明确的胜者。 基于这种情况, 在经历了一些争吵之后, 我们选定了一种作为在未来引入
问题内容: 寻找golang软件包如何积极地增长和改进,我想知道软件包版本的问题如何解决? 我看到一种方法是将第三方程序包存储在项目文件夹下。 但是,如果我将其安装在一起怎么办? 问题答案: 会将软件包安装在列出的第一个目录中(环境变量可能包含用冒号分隔的目录列表)。您可以用来更新现有软件包。 您还可以用来更新您的所有软件包 对于较大的项目,为每个项目创建不同的GOPATH可能是合理的,因此更新项