android - Android - 播放声音的应用程序列表
问题描述
我有一个关于 Android Xamarin 的项目,我想获取正在播放声音的程序列表。我使用下面的代码,但无济于事。
Intent intent = new Intent(Intent.ActionView);
Android.Net.Uri uri = Android.Net.Uri.WithAppendedPath(MediaStore.Audio.Media.InternalContentUri, "1");
intent.SetData(uri);
intent.SetType("audio/*");
IList<ResolveInfo> apps = PackageManager.QueryIntentActivities(intent, 0);
foreach (ResolveInfo rInfo in apps)
{
}
还有其他选择吗?还是我做错了?
解决方案
我尝试过使用共享代码,它在我的物理设备中运行,您应该注意设备是否包含正在播放的声音应用程序。如果不确定模拟器设备安装了音频应用程序,最好使用物理设备进行测试。
Intent intent = new Intent(Intent.ActionView);
Android.Net.Uri uri = Android.Net.Uri.WithAppendedPath(MediaStore.Audio.Media.InternalContentUri, "1");
intent.SetData(uri);
intent.SetType("audio/*");
IList<ResolveInfo> apps = PackageManager.QueryIntentActivities(intent, 0);
foreach (ResolveInfo rInfo in apps)
{
Console.WriteLine("---" + rInfo);
}
控制台日志是:
03-24 14:19:40.117 I/mono-stdout( 1940): ---ResolveInfo{9002d72 cn.kuwo.player/.activities.EntryActivity m=0x608000}
03-24 14:19:40.119 I/mono-stdout( 1940): ---ResolveInfo{b1845c3 com.baidu.searchbox/.music.SearchMusicActivity m=0x608000}
03-24 14:19:40.119 I/mono-stdout( 1940): ---ResolveInfo{6694e40 com.qiyi.video/org.iqiyi.video.activity.PlayerActivity m=0x608000}
03-24 14:19:40.119 I/mono-stdout( 1940): ---ResolveInfo{62e0179 com.tencent.mobileqq/.activity.JumpActivity m=0x608000}
推荐阅读
- php - 创建 php 键和值数组
- python - Healpy query_polygon RuntimeError:未知异常
- php - 尝试将列的内容设置为变量时出现错误“无法将对象用作数组”
- java - 如何在使用 ObjectMapper 转换为 Json 时将 POJO 的 String 变量转换为 Integer?
- java - 如何从 Dropwizard,Hibernate 中的线程更新实体
- r - 如何从googlespread表R中删除行
- asp.net - 我可以从 4.6.1 Web 应用程序调用 .NET 4.7.1 DLL 吗?
- python-3.x - 无法在目录中导入另一个 python 文件
- java - 通过 POST 正文发送复杂的 Obj(带 Map) - JSON
- objective-c - 在 Metal 中升级和模糊纹理的有效方法