前言
-
下面各种获取到的信息分为了两大类,一种是获取APP载体设备当前的各种信息,另一种是APP自身能取得的权限,两部分中的“说在前面的”只是记录了一个我的学习过程,所有调取代码都在示例代码或者demo里,可跳过这部分自取代码
-
这是我的demo地址 GitHub,我将其封装成了一个工具类,欢迎clone使用,其中蓝牙功能没有封装进去,下面我再说具体原因
获取设备当前的各种信息
-
说在前面的:
-
目录前面11条的信息很好获取,好多都是一行代码的事,参考博客:
-
到判断蓝牙和定位开关状态就要导入苹果官方提供的框架了,至于如何导入框架:在工程文件General -> Linked Frameworks and Libraries中点加号添加即可
- 定位参考博客:iOS 判断APP是否打开定位,并实现直接跳转打开定位
- 蓝牙参考博客:iOS中蓝牙开发 核心就是协议方法
-(void)centralManagerDidUpdateState:(CBCentralManager *)central
的回调和参数 central.state 的几种枚举值状态,判断一下就好,因为要遵循主设备的委托——CBCentralManagerDelegate,所以没有将其封装在工具类中。
-
-
目录:
- 获取iPhone名称
- 获取设备版本号
- 当前系统版本号
- 屏幕宽度
- 屏幕高度
- 获取电池电量
- 获取当前设备IP
- 获取总内存大小
- 获取当前可用内存
- 获取当前语言
- 获取Wi-Fi开关状态
- 获取GPS开关状态
- 获取当前设备像素比
- 获取蓝牙开关状态
/// 获取iPhone名称
+ (NSString *)getiPhoneName {
return [UIDevice currentDevice].name;
}
///获取设备版本号
+ (NSString *)getDeviceName {
// 需要#import "sys/utsname.h"
struct utsname systemInfo;
uname(&systemInfo);
NSString *deviceString = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding];
if ([deviceString isEqualToString:@"iPhone3,1"]) return @"iPhone 4";
if ([deviceString isEqualToString:@"iPhone3,2"]) return @"iPhone 4";
if ([deviceString isEqualToString:@"iPhone3,3"]) return @"iPhone 4";
if ([deviceString isEqualToString:@"iPhone4,1"]) return @"iPhone 4S";
if ([deviceString isEqualToString:@"iPhone5,1"]) return @"iPhone 5";
if ([deviceString isEqualToString:@"iPhone5,2"]) return @"iPhone 5 (GSM+CDMA)";
if ([deviceString isEqualToString:@"iPhone5,3"]) return @"iPhone 5c (GSM)";
if ([deviceString isEqualToString:@"iPhone5,4"]) return @"iPhone 5c (GSM+CDMA)";
if ([deviceString isEqualToString:@"iPhone6,1"]) return @"iPhone 5s (GSM)";
if ([deviceString isEqualToString:@"iPhone6,2"]) return @"iPhone 5s (GSM+CDMA)";
if ([deviceString isEqualToString:@"iPhone7,1"]) return @"iPhone 6 Plus";
if ([deviceString isEqualToString:@"iPhone7,2"]) return @"iPhone 6";
if ([deviceString isEqualToString:@"iPhone8,1"]) return @"iPhone 6s";
if ([deviceString isEqualToString:@"iPhone8,2"]) return @"iPhone 6s Plus";
if ([deviceString isEqualToString:@"iPhone8,4"]) return @"iPhone SE";
if ([deviceString isEqualToString:@"iPhone9,1"]) return @"iPhone 7";
if ([deviceString isEqualToString:@"iPhone9,2"]) return @"iPhone 7 Plus";
if ([deviceString isEqualToString:@"iPhone9,3"]) return @"iPhone 7";
if ([deviceString isEqualToString:@"iPhone9,4"]) return @"iPhone 7 Plus";
if ([deviceString isEqualToString:@"iPhone10,1"]) return @"iPhone 8";
if ([deviceString isEqualToString:@"iPhone10,2"]) return @"iPhone 8 Plus";
if ([deviceString isEqualToString:@"iPhone10,3"]) return @"iPhone X";
if ([deviceString isEqualToString:@"iPhone10,4"]) return @"iPhone 8";
if ([deviceString isEqualToString:@"iPhone10,5"]) return @"iPhone 8 Plus";
if ([deviceString isEqualToString:@"iPhone10,6"]) return @"iPhone X";
if ([deviceString isEqualToString:@"iPhone11,2"]) return @"iPhone XS";
if ([deviceString isEqualToString:@"iPhone11,4"]) return @"iPhone XS Max";
if ([deviceString isEqualToString:@"iPhone11,6"]) return @"iPhone XS Max";
if ([deviceString isEqualToString:@"iPhone11,8"]) return @"iPhone XR";
if ([deviceString isEqualToString:@"iPod1,1"]) return @"iPod Touch 1G";
if ([deviceString isEqualToString:@"iPod2,1"]) return @"iPod Touch 2G";
if ([deviceString isEqualToString:@"iPod3,1"]) return @"iPod Touch 3G";
if ([deviceString isEqualToString:@"iPod4,1"]) return @"iPod Touch 4G";
if ([deviceString isEqualToString:@"iPod5,1"]) return @"iPod Touch (5 Gen)";
if ([deviceString isEqualToString:@"iPad1,1"]) return @"iPad";
if ([deviceString isEqualToString:@"iPad1,2"]) re