我正在开发一个应用程序,我需要打开设备中安装的FM收音机。 这只是“FM收音机”而不是“互联网FM收音机”。
我知道如何使用意图打开另一个应用程序
Intent i = new Intent(Intent.ACTION_MAIN);
PackageManager manager = getPackageManager();
i = manager.getLaunchIntentForPackage("com.sec.android.app.fm");
i.addCategory(Intent.CATEGORY_LAUNCHER);
startActivity(i);
但是我需要在每个设备中使用fm无线电应用程序的包名称, 有什么方法可以查询包名并打开FM广播应用程序。
目前我正在使用三星Galaxy S ..此设备中的fm无线电包名称是
com.sec.android.app.fm
每个Android设备的包名是否相同。
任何人请帮助..
答案 0 :(得分:4)
CyanogenMod使用com.android.fm
为例。我不确定其他特定于供应商的广播应用程序,但我会说他们的软件包名称很可能会有所不同。
现在有两个,不一定是相互排斥的选项:
如果您的应用具有互联网权限,您还可以收集使用任一方法发现的包名称,以编译要包含在您的下一版本中的包名称的静态列表,以避免新用户必须手动选择他们的电台应用。
*)
使用PackageManager.getInstalledApplications(...)
并针对List
,".fm."
等的匹配项扫描返回的".fm"
,您可能会获得可能的候选人列表。