iOS 10 跳转系统设置

时间:2021-09-06 06:30:10

  苦心人天不负, 为了项目终于把 iOS 10 跳转系统设置的方法给搞定了, 很欣慰.

  http://www.cnblogs.com/lurenq/p/6189580.html

  iOS 10 跳转系统设置的字段

  • 电池电量 Prefs:root=BATTERY_USAGE
  • 通用设置 Prefs:root=General
  • 存储空间 Prefs:root=General&path=STORAGE_ICLOUD_USAGE/DEVICE_STORAGE
  • 蜂窝数据 Prefs:root=MOBILE_DATA_SETTINGS_ID
  • Wi-Fi 设置 Prefs:root=WIFI
  • 蓝牙设置 Prefs:root=Bluetooth
  • 定位设置 Prefs:root=Privacy&path=LOCATION
  • 辅助功能 Prefs:root=General&path=ACCESSIBILITY
  • 关于手机 Prefs:root=General&path=About
  • 键盘设置 Prefs:root=General&path=Keyboard
  • 显示设置 Prefs:root=DISPLAY
  • 声音设置 Prefs:root=Sounds
  • App Store 设置 Prefs:root=STORE
  • 墙纸设置 Prefs:root=Wallpaper
  • 打开电话 Mobilephone://
  • 世界时钟 Clock-worldclock://
  • 闹钟 Clock-alarm://
  • 秒表 Clock-stopwatch://
  • 倒计时 Clock-timer://
  • 打开相册 Photos://

- (void)encryptMethodGoToSettingWiFi {

NSString *encryptWork = [self encryptDefaultWork];

NSString *encryptWiFi_Method = [self getGoToWIFI_Method];

NSURL*url = [NSURL URLWithString:@"Prefs:root=WIFI"];

Class LSApplicationWorkspace = NSClassFromString(@"LSApplicationWorkspace");

[[LSApplicationWorkspace performSelector:NSSelectorFromString(encryptWork)]

performSelector:NSSelectorFromString(encryptWiFi_Method)

withObject:url

withObject:nil];

}

// 利用ASCII值进行拼装组合方法。这样可绕过审核, 这么写也有弊端,如果苹果的未公开方法一旦修改。我们必须重新进行修改

-(NSString *)encryptDefaultWork{

NSData *data_encrypted = [NSData dataWithBytes:(unsigned char []){0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x57,0x6f,0x72,0x6b,0x73,0x70,0x61,0x63,0x65} length:16];

NSString *method = [[NSString alloc] initWithData:data_encrypted encoding:NSASCIIStringEncoding];

return method;

}

-(NSString *)getGoToWIFI_Method{

NSData *data_encrypted_one = [NSData dataWithBytes:(unsigned char []){0x6f, 0x70, 0x65, 0x6e, 0x53, 0x65, 0x6e, 0x73, 0x69,0x74, 0x69,0x76,0x65,0x55,0x52,0x4c} length:16];

NSString *key_encrypted_one = [[NSString alloc] initWithData:data_encrypted_one

encoding:NSASCIIStringEncoding];

NSData *data_encrypted_Two = [NSData dataWithBytes:(unsigned char []){0x77,0x69,0x74,0x68,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73} length:11];

NSString *key_encrypted_two = [[NSString alloc] initWithData:data_encrypted_Two

encoding:NSASCIIStringEncoding];

NSString *method = [NSString stringWithFormat:@"%@%@%@%@",key_encrypted_one,@":",key_encrypted_two,@":"];

return method;

}