第三百四十一回
2024-01-02 23:31:55
我们在上一章回中介绍了"如何获取App自身信息"相关的内容,本章回中将介绍一个三方包:open_setting.闲话休提,让我们一起Talk Flutter吧。
1. 概念介绍
我们在本章回中介绍的包是open_seetings,该包主要用来打开手机中革个功能的设置页面,比如声音设备,应用设置等。如果使用原生开发方式,打开手机中的设置页
面有专门的API;如果使用Flutter进行混合开发则没有相关的API。该包就是为了解决这个问题而创建的,全章回中将详细该包的使用方法。
2. 使用方法与主要功能
2.1 使用方法
该包的使用方法也比较简单,只需要直接调用包中的方法就可以跳转相应的功能设置页面,因为这些方法都是静态方法,我们将在后面的小节中通过具体的示例代码来演示。
此外,包中把这些方法封装成了Future,因此可以通过Future来获取打开功能设置的结果。
2.2 主要功能
我们查看了该包的源代码,从源代码中找出了打开手机中相关设置的方法,详细如下:
/// Open Wifi settings
static Future<void> openWIFISetting() async {
await _channel.invokeMethod('openSettings', 'wifi');
}
/// Open location source settings
static Future<void> openLocationSourceSetting() async {
await _channel.invokeMethod('openSettings', 'location_source');
}
/// Open app settings
static Future<void> openAppSetting() async {
await _channel.invokeMethod('openSettings', 'app_settings');
}
/// Open Bluetooth settings
static Future<void> openBluetoothSetting() async {
await _channel.invokeMethod('openSettings', 'bluetooth');
}
/// Open Notification settings
static Future<void> openNotificationSetting() async {
_channel.invokeMethod('openSettings', 'notification');
}
/// Open sound Screen settings
static Future<void> openSoundSetting() async {
_channel.invokeMethod('openSettings', 'sound');
}
/// Open main settings
static Future<void> openMainSetting() async {
_channel.invokeMethod('openSettings', 'settings');
}
/// Open Date settings
static Future<void> openDateSetting() async {
_channel.invokeMethod('openSettings', 'date');
}
/// Open Display settings
static Future<void> openDisplaySetting() async {
_channel.invokeMethod('openSettings', 'display');
}
/// Open airplane mode settings
static Future<void> openAirplaneModeSetting() async {
_channel.invokeMethod('openSettings', 'airplane_mode');
}
/// Open apn settings
static Future<void> openApnSetting() async {
_channel.invokeMethod('openSettings', 'apn');
}
/// Open application details settings
static Future<void> openApplicationDetailsSetting() async {
_channel.invokeMethod('openSettings', 'application_details');
}
/// Open application development settings
static Future<void> openApplicationDevelopmentSetting() async {
_channel.invokeMethod('openSettings', 'application_development');
}
/// Open app_notification_bubble settings
static Future<void> openAppNotificationBubbleSetting() async {
_channel.invokeMethod('openSettings', 'app_notification_bubble');
}
/// Open app_notification settings
static Future<void> openAppNotificationSetting() async {
_channel.invokeMethod('openSettings', 'app_notification');
}
/// Open search settings
static Future<void> openSearchSetting() async {
_channel.invokeMethod('openSettings', 'search');
}
/// Open battery_saver settings
static Future<void> openBatterySaverSetting() async {
_channel.invokeMethod('openSettings', 'battery_saver');
}
/// Open channel_notification settings
static Future<void> openChannelNotificationSetting() async {
_channel.invokeMethod('openSettings', 'channel_notification');
}
/// Open device_info settings
static Future<void> openDeviceInfoSetting() async {
_channel.invokeMethod('openSettings', 'device_info');
}
/// Open hard_keyboard settings
static Future<void> openHardKeyboardSetting() async {
_channel.invokeMethod('openSettings', 'hard_keyboard');
}
/// Open home settings
static Future<void> openHomeSetting() async {
_channel.invokeMethod('openSettings', 'home');
}
上面的接口全面来自源代码,我只列出了其中的一部分,大家可以从源代码中获取到更多的内容。此外,代码中添加了注释,以方便大家理解接口的功能。
3. 示例代码
///打开手机中的蓝牙设置功能
ElevatedButton(
onPressed: (){
OpenSettings.openBluetoothSetting();
},
child: const Text("Open BT"),
),
上面的示例代码中演示了如何打开手机中蓝牙功能的设置页面,运行该程序就会看到一个名叫"Open BT"按钮,点击该按钮后就可以跳转到手机中蓝牙功能设置页面。建
议大家自己动手去实践,比如打开声音设置页面。
4. 内容总结
我们在本章回中介绍这个包主要是为了打开手机中蓝牙功能的设置页面,因为在前面章回中介绍蓝牙操作时提起过。当然了,该包的功能比较多,可以通过该包打开其它
的功能设置页面。最后,我们对本章回的内容做一个全面总结:
- FlutterSDK没有想原生SDK一样提供打开手机设置功能的接口;
- 可以使用三方包open_settings打开手机设置功能页面;
- 包中提供的功能接口是静态的,可以通过包名直接使用;
看官们,与"介绍一个三方包open_settings"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!
文章来源:https://blog.csdn.net/talk_8/article/details/135351477
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!