connectivity 0.4.5+3

  • Readme
  • Changelog
  • Example
  • Installing
  • 100

connectivity #

该插件允许Flutter应用发现网络连接并进行相应配置. 它可以区分蜂窝连接和WiFi连接. 该插件适用于iOS和Android.

请注意,在Android上,这不保证可以连接到Internet. 例如,该应用程序可能具有wifi访问功能,但可能是VPN或无法访问的酒店WiFi.

Usage #

用于检查当前状态的样本用法:

import 'package:connectivity/connectivity.dart';

var connectivityResult = await (Connectivity().checkConnectivity());
if (connectivityResult == ConnectivityResult.mobile) {
  // I am connected to a mobile network.
} else if (connectivityResult == ConnectivityResult.wifi) {
  // I am connected to a wifi network.
}

请注意,不应使用当前的网络状态来确定是否可以可靠地建立网络连接. 始终保护您的应用程序代码免受网络层可能造成的超时和错误的影响.

您还可以通过订阅连接插件公开的流来侦听网络状态更改:

import 'package:connectivity/connectivity.dart';

@override
initState() {
  super.initState();

  subscription = Connectivity().onConnectivityChanged.listen((ConnectivityResult result) {
    // Got a new connectivity status!
  })
}

// Be sure to cancel subscription after you are done
@override
dispose() {
  super.dispose();

  subscription.cancel();
}

您可以使用以下方法获取与wi-fi相关的信息:

import 'package:connectivity/connectivity.dart';

var wifiBSSID = await (Connectivity().getWifiBSSID());
var wifiIP = await (Connectivity().getWifiIP());network
var wifiName = await (Connectivity().getWifiName());wifi network

iOS 12 #

要在iOS> = 12上使用.getWifiBSSID().getWifiName() ,必须启用XCode中的Access WiFi information capability . 否则,这两种方法都将返回null.

iOS 13 #

方法.getWifiBSSID().getWifiName()利用iOS上的CNCopyCurrentNetworkInfo函数.

从iOS 13开始,Apple宣布这些API将不再返回有效信息. 与iOS 12或更早版本关联的应用会收到伪值,例如:

  • SSID:" Wi-Fi"或" WLAN"(对于中国SKU,将返回" WLAN").

  • BSSID:" 00:00:00:00:00:00"

与iOS 13或更高版本链接的应用程序会收到null .

CNCopyCurrentNetworkInfo将适用于以下应用程序:

  • 该应用程序使用"核心位置",并获得用户使用位置信息的授权.

  • 该应用程序使用NEHotspotConfiguration API配置当前的Wi-Fi网络.

  • 该应用程序已安装了活动的VPN配置.

如果您的应用程序属于最后两类,它将按原样运行. 如果您的应用程序不属于最后两类,并且您仍然需要访问wifi信息,则应请求用户授权才能使用位置信息.

此插件中提供了一个帮助程序方法来请求位置授权: requestLocationServiceAuthorization . 要请求位置授权,请确保将以下密钥添加到位于<project root>/ios/Runner/Info.plist Info.plist文件中:

  • NSLocationAlwaysAndWhenInUseUsageDescription描述为什么应用程序NSLocationAlwaysAndWhenInUseUsageDescription需要访问用户的位置信息(前景和背景). 在可视编辑器中,这称为" 隐私-始终定位和使用时使用情况说明 ".
  • NSLocationWhenInUseUsageDescription描述当应用程序在前台运行时,为什么应用程序需要访问用户的位置信息. 在视觉编辑器中,这称为" 隐私-使用中的位置用法说明 ".

Getting Started #

要获得Flutter入门方面的帮助,请查看我们的在线文档 .

有关编辑插件代码的帮助,请参阅文档 .

0.4.5+3 #

  • 删除AndroidX警告.

0.4.5+2 #

  • 将生命周期依赖项包含为Android上的compileOnly,以解决与其他传递库的潜在版本冲突.

0.4.5+1 #

  • Android:在build.gradle使用android.arch.lifecycle而不是androidx.lifecycle:lifecycle来支持尚未迁移到AndroidX的应用程序.

0.4.5 #

  • 支持Android v2嵌入器.

0.4.4+1 #

  • 更新和迁移iOS示例项目.
  • 定义iOS的clang模块.

0.4.4 #

  • 添加requestLocationServiceAuthorization以在iOS上请求位置授权.
  • 添加getLocationServiceAuthorization以获取iOS上的位置授权状态.
  • 更新自述文件:使用CNCopyCurrentNetworkInfo添加有关iOS 13更新的更多信息.

0.4.3+7 #

  • 使用有关iOS 13上CNCopyCurrentNetworkInfo的更新信息来更新README.

0.4.3+6 #

  • [Android]修复了无效的抑制检查(应为"不赞成使用"而不是"不赞成使用").

0.4.3+5 #

  • [Android]添加了对check() API 29支持.
  • [Android]禁止使用已弃用的API的警告.

0.4.3+4 #

  • [Android]更新了检索网络信息的逻辑.

0.4.3+3 #

  • 在Android上支持TYPE_MOBILE_HIPRI.

0.4.3+2 #

  • 将缺少的模板类型参数添加到invokeMethod调用中.

0.4.3+1 #

  • 访问Wifi服务时,通过使用getApplicationContext()修复lint错误.

0.4.3 #

  • 添加getWifiBSSID以获取当前wifi网络的BSSID.

0.4.2+2 #

  • 添加集成测试.

0.4.2+1 #

  • 将Flutter的最低版本提高到1.2.0.
  • 将模板类型参数添加到invokeMethod调用.

0.4.2 #

  • 添加getWifiIP()以获得当前的wifi网络的IP.

0.4.1 #

  • 添加单元测试.

0.4.0+2 #

  • 在构建时记录有关先前AndroidX迁移的更详细的警告.

0.4.0+1 #

  • Connectivity更新为单例.

0.4.0 #

  • 突破性的变化. Migrate from the deprecated original Android Support Library to AndroidX. This shouldn't result in any functional changes, but it requires any Android apps using this plugin to also migrate if they're using the original support library.

0.3.2 #

  • 添加getWifiName()以获得当前wifi网络的SSID.

0.3.1 #

  • 更新了Gradle工具以匹配Android Studio 3.1.2.

0.3.0 #

  • 突破性的改变 . 设置SDK约束以匹配Flutter beta版本.

0.2.1 #

  • 修复了来自Dart 2.0分析仪的警告.
  • 将Android项目模板简化并升级到Android SDK 27.
  • 更新了软件包说明.

0.2.0 #

  • 突破性的改变 . 升级到Gradle 4.1和Android Studio Gradle插件3.0.1. 较早的Flutter项目也需要升级其Gradle设置才能使用此版本的插件. 说明可以在这里找到.

0.1.1 #

  • 将FLT前缀添加到iOS类型.

0.1.0 #

  • 重大的API更改:拥有一个连通性类而不是顶层函数
  • 引入监听网络状态变化的能力

0.0.1 #

  • 初始发行

example/README.md

connectivity_example #

演示如何使用连接插件.

Getting Started #

要获得Flutter入门方面的帮助,请查看我们的在线文档 .

Use this package as a library

1. Depend on it

将此添加到包的pubspec.yaml文件中:


dependencies:
  connectivity: ^0.4.5+3

2. Install it

您可以从命令行安装软件包:

使用Flutter:


$ flutter pub get

另外,您的编辑器可能支持flutter pub get . 查看您的编辑器文档以了解更多信息.

3. Import it

现在,在Dart代码中,您可以使用:


import 'package:connectivity/connectivity.dart';
  
Popularity:
描述该程序包相对于其他程序包的受欢迎程度. [更多]
100
Health:
从静态分析得出的代码运行状况. [更多]
100
Maintenance:
反映出软件包的整洁和最新状态. [更多]
100
Overall:
以上的加权分数. [更多]
100
了解有关得分的更多信息.

我们于2019年11月15日对此软件包进行了分析,并在下面提供了分数,详细信息和建议. using: 分析已完成,状态使用以下命令 :

  • 飞镖:2.6.0
  • 高达:0.12.21
  • Flutter:1.9.1 + hotfix.6

Platforms

检测到的平台:Flutter

参考Flutter,并且没有冲突的库.

Dependencies

Package Constraint Resolved Available
直接依赖
Dart SDK > = 2.0.0-dev.28.0 <3.0.0
flutter 0.0.0
meta ^1.0.5 1.1.7 1.1.8
传递依存关系
collection 1.14.11 1.14.12
sky_engine 0.0.99
typed_data 1.1.6
vector_math 2.0.8
开发依赖
e2e ^0.2.0
flutter_driver
flutter_test
test any

by  ICOPY.SITE