点击按钮打开蓝牙设置

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 上不起作用,只会打开设置页面。有更新吗?

以上是关于点击按钮打开蓝牙设置的主要内容,如果未能解决你的问题,请参考以下文章

mac蓝牙开机之后无法启动蓝牙怎么办

贴吧语音贴不能用蓝牙耳机吗

安卓连苹果耳机一直弹音乐

蓝牙耳机换手机怎么设置

华为如何同时联接两个蓝牙耳机同时播放

ipad悬浮球蓝牙为啥关不掉