Android/React Native崩溃,一部手机上有react-native-ble-manager,而另一部手机上没有

dy2hfwbg  于 2023-03-09  发布在  React
关注(0)|答案(1)|浏览(148)

因此,我遇到了一个问题,我得到一个应用程序崩溃的手机(像素6 Android 13),但不是Android 11手机运行BLEManager.scan时.
以下是正在使用的权限:

<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION " />
<uses-permission-sdk-23 android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
<uses-feature android:name="android.hardware.bluetooth_le" android:required="true"/>

在应用程序中运行

PermissionsAndroid.request(
  PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION,
)

猜测这是Android版本的问题,但不确定,因为这没有在文档中指定。

    • 答案:**

我需要在Android 12发布后的运行时请求这些权限。我遇到了问题,因为我的react-native/@types/react-native版本过时,不包含BLUETOOTH_SCANBLUETOOTH_CONNECT权限。我将版本升级到react-native@0.67以上,然后才能在运行时请求这些权限。

import { PermissionsAndroid } from "react-native"

await PermissionsAndroid.requestMultiple([
     PermissionsAndroid.PERMISSIONS.BLUETOOTH_SCAN,
     PermissionsAndroid.PERMISSIONS.BLUETOOTH_CONNECT,
     PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION,
])

以前我只是要求

PermissionsAndroid.request(
    PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION,
)
gjmwrych

gjmwrych1#

    • 答案:**

我需要在Android 12发布后的运行时请求这些权限。我遇到了问题,因为我的react-native/@types/react-native版本过时,不包含BLUETOOTH_SCANBLUETOOTH_CONNECT权限。我将版本升级到react-native@0.67以上,然后才能在运行时请求这些权限。

import { PermissionsAndroid } from "react-native"

await PermissionsAndroid.requestMultiple([
     PermissionsAndroid.PERMISSIONS.BLUETOOTH_SCAN,
     PermissionsAndroid.PERMISSIONS.BLUETOOTH_CONNECT,
     PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION,
])

以前我只是要求

PermissionsAndroid.request(
    PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION,
)

相关问题