我的应用使用UIBlurEffect
,但是较旧的设备(特别是支持iOS 8的iPad 2和3)不支持模糊处理。
我想检查用户设备是否支持模糊。我该怎么做?
UIDevice
有一种[UIDevice _graphicsQuality]
看似有希望的内部方法,但是您的应用程序当然会被Apple拒绝。让我们创建自己的方法:
首先,我们需要知道我们正在使用的确切设备类型:
#import <sys/utsname.h>
NSString* deviceName()
{
struct utsname systemInfo;
uname(&systemInfo);
return [NSString stringWithCString:systemInfo.machine
encoding:NSUTF8StringEncoding];
}
iPad2,1
例如,这将返回iPad
2。这是iDevice型号的更新列表:https :
//theiphonewiki.com/wiki/Models
因此,让我们将设备模型分为两类:图形质量较差(因此不支持模糊)的设备模型和图形质量较高的设备模型。根据我的调查,以下是Apple认为图形质量较差的设备(将来可能会更改):
iPad iPad1,1 iPhone1,1 iPhone1,2 iPhone2,1 iPhone3,1 iPhone3,2 iPhone3,3
iPod1,1 iPod2,1 iPod2,2 iPod3,1 iPod4,1 iPad2,1 iPad2,2 iPad2,3 iPad2,4
iPad3 ,1 iPad3,2 iPad3,3
因此,我们编写以下代码:
NSSet *graphicsQuality = [NSSet setWithObjects:@"iPad",
@"iPad1,1",
@"iPhone1,1",
@"iPhone1,2",
@"iPhone2,1",
@"iPhone3,1",
@"iPhone3,2",
@"iPhone3,3",
@"iPod1,1",
@"iPod2,1",
@"iPod2,2",
@"iPod3,1",
@"iPod4,1",
@"iPad2,1",
@"iPad2,2",
@"iPad2,3",
@"iPad2,4",
@"iPad3,1",
@"iPad3,2",
@"iPad3,3",
nil];
if ([graphicsQuality containsObject:deviceName()]) {
// Device with poor graphics, blur not supported
} else {
// Blur supported
}
请注意,即使设备可能支持模糊效果,用户也可能已从“设置”,“辅助功能”中禁用了高级视觉效果。
替代方法
https://gist.github.com/conradev/8655650
问题内容: 我正在使用JDBC做一个Android应用程序,而不使用任何Web服务将数据发送到数据库。我使用Android 2.2模拟器进行了实验,并且能够将数据发送到MySQL DB(LOCALHOST)。之后,我尝试使用Android 2.2设备进行发送,然后更改了with 的路径 。 xx.xx.xx.xx来自我的本地主机。但是它在设备中不起作用。可能是什么原因。 主要疑问: Android
我想检查一个android设备是否支持DLNA,是否有办法找到它,我在开发者网站上尝试过,但我找不到,
问题内容: 有没有办法检查当前是否在电话上注册了URL方案…使用javascript? 问题答案: 不是无缝的。但是,有一种类似于检查弹出窗口是否被阻止的方法。 当您尝试不支持的URL方案时,Safari会警告用户它不知道该怎么做,并停留在同一页面上。 因此,如果您给应用程序调用分配了一些激活时间(例如300毫秒),然后执行其他操作以响应该方案的不存在。 它不是最漂亮,但可以工作:
我想使用进行ios测试,但目前我们正在使用和。根据他们的留档,他们只支持,我觉得这没有更新。有人能确认设备群当前是否支持Python 3.5和appium 1.6.4-beta吗?我从他们的论坛上找不到这个答案。 设备场的文档-http://docs.aws.amazon.com/devicefarm/latest/developerguide/test-types-android-appium-
问题内容: 这个问题已经在这里有了答案 : Python是否支持MySQL预备语句? (7个答案) 4年前关闭。 MySQLdb是否支持服务器端准备好的语句?我无法从手册中找出答案。 问题答案: 检查MySQLdb 包注释: 在MySQLdb中,通过转义字符串然后将其盲目插入到查询中来进行“参数化”,而不是使用MYSQL_STMT API。结果,unicode字符串必须先经过两个中间表示形式(编码
问题内容: 我想知道是否有可能检测浏览器是否在iOS上运行,这与使用Modernizr进行功能检测的方式类似(尽管这显然是设备检测而非功能检测)。 通常,我宁愿使用功能检测,但我需要根据该问题确定设备是否为iOS,因为它们处理视频的方式YouTube API无法在iPad / iPhone/非Flash设备上使用 问题答案: 我不喜欢User Agent嗅探,但是这是你的处理方式: 另一种方法是依