Android 检查设备是否可以拨打电话
我通过PackageManager检查功能Android 检查设备是否可以拨打电话,android,android-intent,package-managers,Android,Android Intent,Package Managers,我通过PackageManager检查功能 final PackageManager packageManager = context.getPackageManager(); final Intent intent = new Intent(Intent.ACTION_CALL); List<ResolveInfo> list = packageManager.queryIntentActivities(intent,
final PackageManager packageManager = context.getPackageManager();
final Intent intent = new Intent(Intent.ACTION_CALL);
List<ResolveInfo> list =
packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
return list.size() > 0;
final-PackageManager-PackageManager=context.getPackageManager();
最终意图=新意图(意图.行动呼吁);
列表=
packageManager.QueryInputActivities(仅适用于意图、packageManager.MATCH_默认值);
返回列表.size()>0;
但无论如何,结果是错误的。该应用程序在平板电脑和手机上运行,但结果是一样的。我哪里错了?你应该试试这个:
PackageManager pm = this.getPackageManager();
if (pm.hasSystemFeature(PackageManager.FEATURE_TELEPHONY)) {
System.out.println("horray");
} else {
System.out.println("nope");
}
编辑:检查设备中是否安装了Skype
按以下方法传递Skype
URI
private boolean appInstalledOrNot(String uri) {
PackageManager pm = getPackageManager();
boolean app_installed = false;
try {
pm.getPackageInfo(uri, PackageManager.GET_ACTIVITIES);
app_installed = true;
}
catch (PackageManager.NameNotFoundException e) {
app_installed = false;
}
return app_installed ;
}
你应该试试这个:
PackageManager pm = this.getPackageManager();
if (pm.hasSystemFeature(PackageManager.FEATURE_TELEPHONY)) {
System.out.println("horray");
} else {
System.out.println("nope");
}
编辑:检查设备中是否安装了Skype
按以下方法传递Skype
URI
private boolean appInstalledOrNot(String uri) {
PackageManager pm = getPackageManager();
boolean app_installed = false;
try {
pm.getPackageInfo(uri, PackageManager.GET_ACTIVITIES);
app_installed = true;
}
catch (PackageManager.NameNotFoundException e) {
app_installed = false;
}
return app_installed ;
}
除了在平板电脑上运行应用程序外,它还能正常工作,但系统中并没有电话功能,但我可以通过skype拨打电话。你们可以检查
skype
是否安装在设备中。是的,当然,但检查每一个可以拨打电话的应用程序并不合理。若我在系统中有这样的应用程序,默认情况下我可以通过启动下一个intent(newintent(intent.ACTION_调用,Uri.parse(number));)来使用它们。我只需要知道这些应用程序是否安装在系统中。以编程方式检查权限哪些应用程序在其清单中列出了呼叫权限。这就是我需要的。但我怎么能做到这一点呢?除了在平板电脑上运行应用程序外,它还能工作,但系统中并没有电话功能,但我可以通过skype拨打电话。你们可以检查skype
是否安装在设备中。是的,当然,但检查每个可以拨打电话的应用程序并不合理。若我在系统中有这样的应用程序,默认情况下我可以通过启动下一个intent(newintent(intent.ACTION_调用,Uri.parse(number));)来使用它们。我只需要知道这些应用程序是否安装在系统中。以编程方式检查权限哪些应用程序在其清单中列出了呼叫权限。这就是我需要的。但我怎么能做到这一点呢?