准备工作
开始使用 Nearby Connections API 进行编码之前,请执行以下操作:
- 安装 Google Play 服务 SDK。
- 下载并查看 Nearby Connections API 代码示例。
请求权限
在使用 Nearby Connections 之前,您的应用必须请求适当的权限。将以下权限添加到 AndroidManifest.xml:
<!-- Required for Nearby Connections --> <uses-permission android:maxSdkVersion="32" android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:maxSdkVersion="32" android:name="android.permission.CHANGE_WIFI_STATE" /> <uses-permission android:maxSdkVersion="30" android:name="android.permission.BLUETOOTH" /> <uses-permission android:maxSdkVersion="30" android:name="android.permission.BLUETOOTH_ADMIN" /> <uses-permission android:maxSdkVersion="32" android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:minSdkVersion="29" android:maxSdkVersion="32" android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:minSdkVersion="31" android:name="android.permission.BLUETOOTH_ADVERTISE" /> <uses-permission android:minSdkVersion="31" android:name="android.permission.BLUETOOTH_CONNECT" /> <uses-permission android:minSdkVersion="31" android:name="android.permission.BLUETOOTH_SCAN" android:usesPermissionFlags="neverForLocation" /> <uses-permission android:minSdkVersion="33" android:name="android.permission.NEARBY_WIFI_DEVICES" android:usesPermissionFlags="neverForLocation" /> <uses-permission android:minSdkVersion="37" android:name="android.permission.ACCESS_LOCAL_NETWORK" /> <!-- Optional: only required for FILE payloads --> <uses-permission android:maxSdkVersion="32" android:name="android.permission.READ_EXTERNAL_STORAGE" />
由于 ACCESS_COARSE_LOCATION、ACCESS_FINE_LOCATION、BLUETOOTH_ADVERTISE、BLUETOOTH_CONNECT、BLUETOOTH_SCAN、NEARBY_WIFI_DEVICES、ACCESS_LOCAL_NETWORK(从 Android 17 开始,对于使用 WIFI_LAN 且以 SDK 37+ 为目标平台的应用,此权限是必需的)和 READ_EXTERNAL_STORAGE 被视为危险的系统权限,因此除了将这些权限添加到清单中之外,您还必须在运行时请求这些权限,如请求权限中所述。
如果用户未授予所有必需的权限,Nearby Connections API 将拒绝允许您的应用开始通告或发现。