点击按钮打开蓝牙设置
Posted
技术标签:
【中文标题】点击按钮打开蓝牙设置【英文标题】:Open bluetooth settings on button tap 【发布时间】:2015-10-23 02:50:25 【问题描述】:到目前为止,我已经做了足够多的工作来了解这在 ios 5.1 及更低版本上是如何实现的,而在任何高于该版本的版本中都是不可能的。
但是其他应用是如何做到的呢?
到目前为止,我已经尝试了以下方法(在 iOS 8.1 模拟器、Xcode 上测试):
- (void)turnOnBlueToothPressed:(id)sender
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
这会打开应用程序的设置。不理想,但就是这样。
AFAIK,使用以下内容:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=General&path=Bluetooth"]]
不再有效。或者,谁能指出我的官方文档说明它不再适用于任何版本> iOS 5.1?
【问题讨论】:
【参考方案1】:我也有同样的问题,现在只能打开当前应用设置,抱歉.....=( https://developer.apple.com/library/ios/releasenotes/General/WhatsNewIniOS/Articles/iOS8.html
【讨论】:
【参考方案2】:这适用于 iOS 版本 5.1 及更高版本。
您必须在 Xcode 的 info.plist
选项卡的 URL 类型 中添加 URL 方案 prefs
,如下所示:
Objective-C:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=WIFI"]];
斯威夫特:
UIApplication.sharedApplication().openURL(NSURL(string: "prefs:root=WIFI")!)
这将从您的应用程序中打开 WIFI 设置。
相关的 SO 链接:
iOS Launching Settings -> Restrictions URL Scheme Call the official settings app from my app on iphone【讨论】:
在 ios 9 上测试过,它可以工作,但我在 ios 11 上试过,prefs:root=Bluetooth
不起作用,App-Prefs:root=Bluetooth
确实打开了设置,但不是蓝牙。 App-prefs:root=Bluetooth
确实在 ios 11 上工作过,所以这个案例似乎很重要。 ? 仅在 Url 方案中需要 prefs
@GabLeRoux 在 iOS 11 上我们是否也需要添加 URL 类型...对我来说,没有任何解决方案有效,有什么想法吗?
我正在升级到最新的 ios 版本,并会再试一次。但是我发现这个 github 项目说 ios11 有问题:github.com/phynet/iOS-URL-Schemes【参考方案3】:
注意:以下方法适用于 iOS 11 以下的所有版本,对于更高版本的应用可能会被拒绝,因为它是私有 API 这属于指南 2.5.1 - 性能 - 软件要求
这里是所有short url strings的列表:
如果你想打开蓝牙设置:
斯威夫特 3:
let url = URL(string: "App-Prefs:root=Bluetooth")
let app = UIApplication.shared
app.openURL(url!)
使用以下代码打开设置:
UIApplication.sharedApplication().openURL(NSURL(string: UIApplicationOpenSettingsURLString))
【讨论】:
在 iOS 11 上不起作用,只会打开设置页面。有更新吗?以上是关于点击按钮打开蓝牙设置的主要内容,如果未能解决你的问题,请参考以下文章