В свое приложение я добавил реактивную натуру.Я также связал это, используя реагирующую родную ссылку cmd.Я выполнил все необходимые шаги, указанные в документах lib.Но это не работает.Я никогда не спрашиваю разрешения пользователя, и это дает ошибку. Deivce не авторизован для использования BluetoothLE.Вот мой код для
AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.smartdeviceiot">
<uses-feature android:name="android.hardware.bluetooth_le" android:required="true"/>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
<uses-permission-sdk-23 android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-sdk
android:minSdkVersion="18"
android:targetSdkVersion="23"/>
DeviceSearch.js
импорта цветов из '../constants/colors';импортировать изображения из «../constants/images»;import {Button, Icon, Text, Container, Header, Left, Body, Title, Right} из 'native-base';import {HomeStyle} из './styles/home';import {BleManager} из класса'act-native-ble-plx 'DevicesSearch extends Component {static navigationOptions = {title:' DevicesSearch '};конструктор (реквизит) {супер (реквизит);const manager = new BleManager ();this.state = {};} componentWillMount () {} render () {return (> this.props.navigation.navigate ("DrawerOpen")}> DevicesSearch Search Devices);} scanAndConnect = () => {alert ('asd') console.log ('cal');this.manager.startDeviceScan (null, null, (error, device) => {this.info ("Scanning ..."); console.log (device);
if (error) {
this.error(error.message);
return
}
if (device.name ==='MyDevice') {
this.info("Connecting to Tappy");
this.manager.stopDeviceScan();
device.connect()
.then((device) => {
this.info("Discovering services and characteristics");
return device.discoverAllServicesAndCharacteristics()
})
.then((device) => {
this.info(device.id);
device.writeCharacteristicWithResponseForService('12ab', '34cd',
'aGVsbG8gbWlzcyB0YXBweQ ==') .then ((характеристика) => {this.info (характеристика.значение); возврат})}) .catch ((ошибка) => {this.error (error.message)})}});}} function mapStateToProps (state) {// передать провайдерам return {}} / * Сопоставить действия с Props * / function mapDispatchToProps (dispatch)> {return {actions: bindActionCreators ({}, dispatch)};} экспортировать соединение по умолчанию (mapStateToProps, mapDispatchToProps) (DevicesSearch);
, если мой bluetooth выключен, код console.log, что bluetooth выключен, но когда он включен, войдите в систему, чтобы сообщить мне, что это устройствоне авторизоваться, чтобы использовать Bluetooth.Я также устал использовать AndroidPermission lib, но безуспешно.не требует разрешения от пользователя