开始使用

准备工作

开始使用 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 将拒绝允许您的应用开始通告或发现。