objective-c - iOS 有什么办法可以直接跳转到手机蓝牙设置界面连接蓝牙?
高洛峰
高洛峰 2017-04-18 09:48:47
0
1
708

1.问题描述:
项目需要在APP应用中检测蓝牙是否已经打开,如果手机蓝牙没有开启,则需要弹出提示框,并点击跳转到手机蓝牙设置界面开启蓝牙。

2.尝试解决办法:

在iOS9之前,一只都是使用这个接口跳转的:

 let url = NSURL(string: "prefs:root=Bluetooth");
 if UIApplication.sharedApplication().canOpenURL(url!) {
      UIApplication.sharedApplication().openURL(url!)
 }

但是现在手机升级iOS10之后,这个方法就失效了。
请问有什么好的解决办法吗?

PS:
如果能直接在APP里面连接打开手机蓝牙开关,并且连接蓝牙就更好了!

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全員に返信(1)
黄舟

iOS10がジャンプしない問題について、実はiOSは非公開の方法を提供しています。監査は問題ですが、それを回避する方法を見つけることはできます。

NSString *defaultWork = [self getDefaultWork];
NSString * bluetoothMethod = [self getBluetoothMethod];
NSURL*url=[NSURL URLWithString:@"Prefs:root=Bluetooth"];
クラス LSApplicationWorkspace = NSClassFromString(@"LSApplicationWorkspace");
[[LSApplicationWorkspace PerformSelector:NSSelectorFromString(defaultWork)] PerformSelector:NSSelectorFromString(bluetoothMethod) withObject:url withObject:nil];
メソッドのアセンブルと結合には ASCII 値を使用します。これによりレビューが回避されます。

-(NSString *) getDefaultWork{
NSData *dataOne = [NSData dataWithBytes:(unsigned char []){0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x57,0x6f,0x72,0x6b, 0x73,0x70,0x61,0x63,0x65} 長さ:16];

リーリー

戻りメソッド;
}

-(NSString *) getBluetoothMethod{

リーリー

returnメソッド;
}
上記はBluetoothインターフェースに入るメソッドです。他のページにジャンプすることもできます。設定ページは@"@"Prefs:root=TETHERING"、Wi-Fiは@"Prefs:root=WIFI"です。PrefsのPが大文字であることに注意してください。このように書くことにはデメリットもあります。Appleの非公開の方法の場合一度変更すると、再度変更する必要があります。

https://segmentfault.com/q/10... に答えがあります。現在、設定ページにジャンプすることが可能です。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!