feature():新增对android的支持
This commit is contained in:
parent
d25c64ea51
commit
7fdfa32201
|
|
@ -0,0 +1,19 @@
|
||||||
|
|
||||||
|
/*******************struct bloodmember***********************
|
||||||
|
BLOODMEMBER[0]Bagnumber//当前包号
|
||||||
|
BLOODMEMBER[1]Current//当前蓝牙原始电流
|
||||||
|
BLOODMEMBER[2]Real_fix_current//待函数返回计算的电流修正值;
|
||||||
|
BLOODMEMBER[3]Before_fix_current//前一个包的Real_fix_current
|
||||||
|
BLOODMEMBER[4]Reference_k//参比系数,第一个参比之前为0;每次有参比输入后,会更新一次;
|
||||||
|
BLOODMEMBER[5]Reference_bloodsugar//当前包输入的参比血糖值,当前包没有输入参比血糖时应为0;放大10倍保存
|
||||||
|
BLOODMEMBER[6]Real_B//未有参比输入时,应为0;每次有参比输入后,会更新一次;
|
||||||
|
BLOODMEMBER[7]Blood_sugar//待函数返回计算的值,未计算时为0;放大10倍保存
|
||||||
|
|
||||||
|
//函数返回计算后的数组;
|
||||||
|
uint16 * Glucose_calculation(uint16 A[] ){
|
||||||
|
return BLOODMEMBER;
|
||||||
|
}
|
||||||
|
*********************struct bloodmember*********************/
|
||||||
|
|
||||||
|
typedef unsigned short uint16; /* Unsigned 16 bit value */
|
||||||
|
uint16 BLOODMEMBER[8];
|
||||||
|
|
@ -82,5 +82,6 @@ dependencies {
|
||||||
// For > 0.71, this will be replaced by `com.facebook.react:react-android:$version` by react gradle plugin
|
// For > 0.71, this will be replaced by `com.facebook.react:react-android:$version` by react gradle plugin
|
||||||
//noinspection GradleDynamicVersion
|
//noinspection GradleDynamicVersion
|
||||||
implementation "com.facebook.react:react-native:+"
|
implementation "com.facebook.react:react-native:+"
|
||||||
|
implementation "org.apache.commons:commons-lang3:3.5"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,2 +1,16 @@
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
<uses-permission android:name="android.permission.INTERNET" />
|
||||||
|
<uses-permission android:name="android.permission.BLUETOOTH"
|
||||||
|
android:maxSdkVersion="30" />
|
||||||
|
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"
|
||||||
|
android:maxSdkVersion="30" />
|
||||||
|
<!-- Needed only if your app looks for Bluetooth devices. -->
|
||||||
|
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
|
||||||
|
<uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
|
||||||
|
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
|
||||||
|
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
|
||||||
|
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"/>
|
||||||
|
<uses-permission android:name="android.permission.BLUETOOTH_PRIVILEGED"
|
||||||
|
tools:ignore="ProtectedPermissions" />
|
||||||
</manifest>
|
</manifest>
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ package com.btdevice;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
|
import com.device.comm.mylibrary.RNMethodModule;
|
||||||
import com.facebook.react.ReactPackage;
|
import com.facebook.react.ReactPackage;
|
||||||
import com.facebook.react.bridge.NativeModule;
|
import com.facebook.react.bridge.NativeModule;
|
||||||
import com.facebook.react.bridge.ReactApplicationContext;
|
import com.facebook.react.bridge.ReactApplicationContext;
|
||||||
|
|
@ -17,6 +18,7 @@ public class BtDevicePackage implements ReactPackage {
|
||||||
public List<NativeModule> createNativeModules(@NonNull ReactApplicationContext reactContext) {
|
public List<NativeModule> createNativeModules(@NonNull ReactApplicationContext reactContext) {
|
||||||
List<NativeModule> modules = new ArrayList<>();
|
List<NativeModule> modules = new ArrayList<>();
|
||||||
modules.add(new BtDeviceModule(reactContext));
|
modules.add(new BtDeviceModule(reactContext));
|
||||||
|
modules.add(new RNMethodModule(reactContext));
|
||||||
return modules;
|
return modules;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,20 @@
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
|
||||||
<uses-permission android:name="android.permission.INTERNET" />
|
<uses-permission android:name="android.permission.INTERNET" />
|
||||||
|
<uses-permission android:name="android.permission.BLUETOOTH"
|
||||||
|
android:maxSdkVersion="30" />
|
||||||
|
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"
|
||||||
|
android:maxSdkVersion="30" />
|
||||||
|
<!-- Needed only if your app looks for Bluetooth devices. -->
|
||||||
|
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
|
||||||
|
<uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
|
||||||
|
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
|
||||||
|
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
|
||||||
|
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"/>
|
||||||
|
<uses-permission android:name="android.permission.BLUETOOTH_PRIVILEGED"
|
||||||
|
tools:ignore="ProtectedPermissions" />
|
||||||
|
|
||||||
|
|
||||||
<application
|
<application
|
||||||
android:name=".MainApplication"
|
android:name=".MainApplication"
|
||||||
|
|
|
||||||
|
|
@ -1,22 +1,77 @@
|
||||||
package com.btdeviceexample
|
package com.btdeviceexample
|
||||||
|
|
||||||
|
import android.Manifest.permission.ACCESS_COARSE_LOCATION
|
||||||
|
import android.Manifest.permission.ACCESS_FINE_LOCATION
|
||||||
|
import android.Manifest.permission.ACCESS_LOCATION_EXTRA_COMMANDS
|
||||||
|
import android.Manifest.permission.BLUETOOTH_CONNECT
|
||||||
|
import android.Manifest.permission.BLUETOOTH_PRIVILEGED
|
||||||
|
import android.Manifest.permission.BLUETOOTH_SCAN
|
||||||
|
import android.Manifest.permission.READ_EXTERNAL_STORAGE
|
||||||
|
import android.Manifest.permission.WRITE_EXTERNAL_STORAGE
|
||||||
|
import android.content.pm.PackageManager
|
||||||
|
import android.os.Bundle
|
||||||
|
import android.os.PersistableBundle
|
||||||
|
import androidx.core.app.ActivityCompat
|
||||||
import com.facebook.react.ReactActivity
|
import com.facebook.react.ReactActivity
|
||||||
import com.facebook.react.ReactActivityDelegate
|
import com.facebook.react.ReactActivityDelegate
|
||||||
import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.fabricEnabled
|
import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.fabricEnabled
|
||||||
import com.facebook.react.defaults.DefaultReactActivityDelegate
|
import com.facebook.react.defaults.DefaultReactActivityDelegate
|
||||||
|
|
||||||
|
|
||||||
class MainActivity : ReactActivity() {
|
class MainActivity : ReactActivity() {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the name of the main component registered from JavaScript. This is used to schedule
|
* Returns the name of the main component registered from JavaScript. This is used to schedule
|
||||||
* rendering of the component.
|
* rendering of the component.
|
||||||
*/
|
*/
|
||||||
|
private var PERMISSIONS_STORAGE: Array<String> = arrayOf<String>(
|
||||||
|
READ_EXTERNAL_STORAGE,
|
||||||
|
WRITE_EXTERNAL_STORAGE,
|
||||||
|
ACCESS_FINE_LOCATION,
|
||||||
|
ACCESS_COARSE_LOCATION,
|
||||||
|
ACCESS_LOCATION_EXTRA_COMMANDS,
|
||||||
|
BLUETOOTH_SCAN,
|
||||||
|
BLUETOOTH_CONNECT,
|
||||||
|
BLUETOOTH_PRIVILEGED
|
||||||
|
)
|
||||||
|
private val PERMISSIONS_LOCATION = arrayOf<String>(
|
||||||
|
ACCESS_FINE_LOCATION,
|
||||||
|
ACCESS_COARSE_LOCATION,
|
||||||
|
ACCESS_LOCATION_EXTRA_COMMANDS,
|
||||||
|
BLUETOOTH_SCAN,
|
||||||
|
BLUETOOTH_CONNECT,
|
||||||
|
BLUETOOTH_PRIVILEGED
|
||||||
|
)
|
||||||
override fun getMainComponentName(): String = "BtDeviceExample"
|
override fun getMainComponentName(): String = "BtDeviceExample"
|
||||||
|
|
||||||
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
|
super.onCreate(savedInstanceState)
|
||||||
|
checkPermissions()
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the instance of the [ReactActivityDelegate]. We use [DefaultReactActivityDelegate]
|
* Returns the instance of the [ReactActivityDelegate]. We use [DefaultReactActivityDelegate]
|
||||||
* which allows you to enable New Architecture with a single boolean flags [fabricEnabled]
|
* which allows you to enable New Architecture with a single boolean flags [fabricEnabled]
|
||||||
*/
|
*/
|
||||||
override fun createReactActivityDelegate(): ReactActivityDelegate =
|
override fun createReactActivityDelegate(): ReactActivityDelegate =
|
||||||
DefaultReactActivityDelegate(this, mainComponentName, fabricEnabled)
|
DefaultReactActivityDelegate(this, mainComponentName, fabricEnabled)
|
||||||
|
|
||||||
|
private fun checkPermissions() {
|
||||||
|
val permission1 = ActivityCompat.checkSelfPermission(this, WRITE_EXTERNAL_STORAGE)
|
||||||
|
val permission2 = ActivityCompat.checkSelfPermission(this, BLUETOOTH_SCAN)
|
||||||
|
if (permission1 != PackageManager.PERMISSION_GRANTED) {
|
||||||
|
// We don't have permission so prompt the user
|
||||||
|
ActivityCompat.requestPermissions(
|
||||||
|
this,
|
||||||
|
PERMISSIONS_STORAGE,
|
||||||
|
1
|
||||||
|
)
|
||||||
|
} else if (permission2 != PackageManager.PERMISSION_GRANTED) {
|
||||||
|
ActivityCompat.requestPermissions(
|
||||||
|
this,
|
||||||
|
PERMISSIONS_LOCATION,
|
||||||
|
1
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,14 @@
|
||||||
import * as React from 'react';
|
import * as React from 'react';
|
||||||
|
|
||||||
import { StyleSheet, View, Text } from 'react-native';
|
import { StyleSheet, View, Text } from 'react-native';
|
||||||
import RNMethodModule from 'react-native-bt-device';
|
import RNMethodModule,{DYGlucoseDriver} from 'react-native-bt-device';
|
||||||
|
|
||||||
export default function App() {
|
export default function App() {
|
||||||
// const [result, setResult] = React.useState<number | undefined>();
|
// const [result, setResult] = React.useState<number | undefined>();
|
||||||
|
|
||||||
React.useEffect(() => {
|
React.useEffect( () => {
|
||||||
RNMethodModule.startBLEScan()
|
RNMethodModule.connectSingleDevice('abc')
|
||||||
|
DYGlucoseDriver.startMonitor('abc')
|
||||||
// multiply(3, 7).then(setResult);
|
// multiply(3, 7).then(setResult);
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue