我的意思是,如果没有拨号器,我该怎么检查用户的设备不是平板电脑(或音乐播放器)呢?
附注:我的应用程序使用在拨号器中输入的数字代码,因此我想要检查它是否存在。
我的意思是,如果没有拨号器,我该怎么检查用户的设备不是平板电脑(或音乐播放器)呢?
附注:我的应用程序使用在拨号器中输入的数字代码,因此我想要检查它是否存在。
在尝试调用意图接收器/活动之前,检查其是否存在是一个好方法。
原因有:
如果意图不存在,你的应用程序将强制关闭。 如果意图接收器不存在,你可能需要重定向用户到市场下载必要的应用程序。 根据意图的存在与否,你可能需要使菜单选项出现/消失。
以下代码段包含两个函数:isIntentAvailable() 和 isActivityAvailable(),它们可以执行检查并相应地返回布尔值。
public boolean isIntentAvailable(Context context, String action) {
final PackageManager packageManager = context.getPackageManager();
final Intent intent = new Intent(action);
List resolveInfo =
packageManager.queryIntentActivities(intent,
PackageManager.MATCH_DEFAULT_ONLY);
if (resolveInfo.size() > 0) {
return true;
}
return false;
}
在启动任何第三方应用程序之前,只需将您的动作字符串作为参数传递给此函数即可。
public static String TelephonyChecker (Context context) {
TelephonyManager manager = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
if(manager.getPhoneType() == TelephonyManager.PHONE_TYPE_NONE){
return "Off";
}else{
return "On";
}
}