react-native-mytatva-rn-sdk 1.2.32 → 1.2.34

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. package/android/build.gradle +144 -141
  2. package/android/src/main/AndroidManifest.xml +4 -1
  3. package/android/src/main/AndroidManifestNew.xml +141 -138
  4. package/android/src/main/java/com/mytatvarnsdk/CgmTrackyLibModule.kt +74 -101
  5. package/android/src/main/java/com/mytatvarnsdk/MainApplication.kt +4 -4
  6. package/android/src/main/java/com/mytatvarnsdk/activity/ConnectSensorActivity.kt +20 -2
  7. package/android/src/main/java/com/mytatvarnsdk/activity/PermissionActivity.kt +6 -0
  8. package/android/src/main/java/com/mytatvarnsdk/activity/PlaceSensorActivity.kt +82 -65
  9. package/android/src/main/java/com/mytatvarnsdk/activity/PlaceTransmitterActivity.kt +106 -89
  10. package/android/src/main/java/com/mytatvarnsdk/activity/SearchTransmitterActivity.kt +13 -7
  11. package/android/src/main/java/com/mytatvarnsdk/activity/SensorConnectSuccessActivity.kt +113 -96
  12. package/android/src/main/java/com/mytatvarnsdk/activity/StartCGMActivity.kt +110 -54
  13. package/android/src/main/java/com/mytatvarnsdk/activity/VideoActivity.kt +94 -0
  14. package/android/src/main/res/drawable/img_sensor_cross.png +0 -0
  15. package/android/src/main/res/drawable/radio_button_background.xml +1 -1
  16. package/android/src/main/res/drawable/radio_checked.xml +1 -1
  17. package/android/src/main/res/layout/activity_connect_sensor.xml +497 -495
  18. package/android/src/main/res/layout/activity_place_sensor.xml +250 -238
  19. package/android/src/main/res/layout/activity_place_transmitter.xml +219 -207
  20. package/android/src/main/res/layout/activity_search_transmitter.xml +714 -712
  21. package/android/src/main/res/layout/activity_sensor_connect_success.xml +250 -179
  22. package/android/src/main/res/layout/activity_start_cgmactivity.xml +153 -153
  23. package/android/src/main/res/layout/activity_video.xml +32 -0
  24. package/android/src/main/res/values/styles.xml +1 -3
  25. package/ios/Database/KLTDatabaseHandler.m +8 -0
  26. package/package.json +1 -1
@@ -1,22 +1,22 @@
1
1
  buildscript {
2
- // Buildscript is evaluated before everything else so we can't use getExtOrDefault
3
- def kotlin_version = rootProject.ext.has("kotlinVersion") ? rootProject.ext.get("kotlinVersion") : project.properties["MyTatvaRnSdk_kotlinVersion"]
2
+ // Buildscript is evaluated before everything else so we can't use getExtOrDefault
3
+ def kotlin_version = rootProject.ext.has("kotlinVersion") ? rootProject.ext.get("kotlinVersion") : project.properties["MyTatvaRnSdk_kotlinVersion"]
4
4
 
5
- repositories {
6
- google()
7
- mavenCentral()
8
- }
9
-
10
- dependencies {
11
- classpath "com.android.tools.build:gradle:8.1.0"
12
- // noinspection DifferentKotlinGradleVersion
13
- classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
14
- classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:2.1.10'
15
- }
5
+ repositories {
6
+ google()
7
+ mavenCentral()
8
+ }
9
+
10
+ dependencies {
11
+ classpath "com.android.tools.build:gradle:8.1.0"
12
+ // noinspection DifferentKotlinGradleVersion
13
+ classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
14
+ classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:2.1.10'
15
+ }
16
16
  }
17
17
 
18
18
  def isNewArchitectureEnabled() {
19
- return rootProject.hasProperty("newArchEnabled") && rootProject.getProperty("newArchEnabled") == "true"
19
+ return rootProject.hasProperty("newArchEnabled") && rootProject.getProperty("newArchEnabled") == "true"
20
20
  }
21
21
 
22
22
  apply plugin: "com.android.library"
@@ -27,168 +27,171 @@ apply plugin: 'kotlin-kapt'
27
27
  def appProject = rootProject.allprojects.find { it.plugins.hasPlugin('com.android.application') }
28
28
 
29
29
  if (isNewArchitectureEnabled()) {
30
- apply plugin: "com.facebook.react"
30
+ apply plugin: "com.facebook.react"
31
31
  }
32
32
 
33
33
  def getExtOrDefault(name) {
34
- return rootProject.ext.has(name) ? rootProject.ext.get(name) : project.properties["MyTatvaRnSdk_" + name]
34
+ return rootProject.ext.has(name) ? rootProject.ext.get(name) : project.properties["MyTatvaRnSdk_" + name]
35
35
  }
36
36
 
37
37
  def getExtOrIntegerDefault(name) {
38
- return rootProject.ext.has(name) ? rootProject.ext.get(name) : (project.properties["MyTatvaRnSdk_" + name]).toInteger()
38
+ return rootProject.ext.has(name) ? rootProject.ext.get(name) : (project.properties["MyTatvaRnSdk_" + name]).toInteger()
39
39
  }
40
40
 
41
41
  def supportsNamespace() {
42
- def parsed = com.android.Version.ANDROID_GRADLE_PLUGIN_VERSION.tokenize('.')
43
- def major = parsed[0].toInteger()
44
- def minor = parsed[1].toInteger()
42
+ def parsed = com.android.Version.ANDROID_GRADLE_PLUGIN_VERSION.tokenize('.')
43
+ def major = parsed[0].toInteger()
44
+ def minor = parsed[1].toInteger()
45
45
 
46
- // Namespace support was added in 7.3.0
47
- if (major == 7 && minor >= 3) {
48
- return true
49
- }
46
+ // Namespace support was added in 7.3.0
47
+ if (major == 7 && minor >= 3) {
48
+ return true
49
+ }
50
50
 
51
- return major >= 8
51
+ return major >= 8
52
52
  }
53
53
 
54
54
  android {
55
- if (supportsNamespace()) {
56
- namespace "com.mytatvarnsdk"
57
-
58
- sourceSets {
59
- main {
60
- manifest.srcFile "src/main/AndroidManifestNew.xml"
61
- jniLibs.srcDirs = ['src/main/jniLibs']
62
- }
55
+ if (supportsNamespace()) {
56
+ namespace "com.mytatvarnsdk"
57
+
58
+ sourceSets {
59
+ main {
60
+ manifest.srcFile "src/main/AndroidManifestNew.xml"
61
+ jniLibs.srcDirs = ['src/main/jniLibs']
62
+ }
63
+ }
63
64
  }
64
- }
65
65
 
66
- compileSdkVersion getExtOrIntegerDefault("compileSdkVersion")
66
+ compileSdkVersion getExtOrIntegerDefault("compileSdkVersion")
67
67
 
68
- defaultConfig {
69
- minSdkVersion getExtOrIntegerDefault("minSdkVersion")
70
- targetSdkVersion getExtOrIntegerDefault("targetSdkVersion")
71
- buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString()
72
- multiDexEnabled true
68
+ defaultConfig {
69
+ minSdkVersion getExtOrIntegerDefault("minSdkVersion")
70
+ targetSdkVersion getExtOrIntegerDefault("targetSdkVersion")
71
+ buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString()
72
+ multiDexEnabled true
73
73
 
74
- ndk {
75
- abiFilters "armeabi-v7a", "arm64-v8a"
74
+ ndk {
75
+ abiFilters "armeabi-v7a", "arm64-v8a"
76
+ }
76
77
  }
77
- }
78
- buildTypes {
79
- release {
80
- minifyEnabled false
78
+ buildTypes {
79
+ release {
80
+ minifyEnabled false
81
+ }
81
82
  }
82
- }
83
83
 
84
- lintOptions {
85
- disable "GradleCompatible"
86
- }
84
+ lintOptions {
85
+ disable "GradleCompatible"
86
+ }
87
87
 
88
- compileOptions {
89
- sourceCompatibility JavaVersion.VERSION_17
90
- targetCompatibility JavaVersion.VERSION_17
91
- }
88
+ compileOptions {
89
+ sourceCompatibility JavaVersion.VERSION_17
90
+ targetCompatibility JavaVersion.VERSION_17
91
+ }
92
92
 
93
- buildFeatures {
94
- buildConfig = true
95
- }
96
- viewBinding {
97
- enabled = true
98
- }
93
+ buildFeatures {
94
+ buildConfig = true
95
+ }
96
+ viewBinding {
97
+ enabled = true
98
+ }
99
99
 
100
- repositories {
101
- google()
102
- mavenCentral()
103
- flatDir {
104
- dirs 'libs'
100
+ repositories {
101
+ google()
102
+ mavenCentral()
103
+ flatDir {
104
+ dirs 'libs'
105
+ }
105
106
  }
106
- }
107
107
 
108
108
  }
109
109
 
110
110
  repositories {
111
- mavenCentral()
112
- google()
113
- flatDir {
114
- dirs project.file('libs')
115
- }
111
+ mavenCentral()
112
+ google()
113
+ flatDir {
114
+ dirs project.file('libs')
115
+ }
116
116
  }
117
117
 
118
118
  def kotlin_version = getExtOrDefault("kotlinVersion")
119
119
 
120
120
  dependencies {
121
- implementation fileTree(include: ['*.jar'], dir: 'libs')
122
-
123
- // For < 0.71, this will be from the local maven repo
124
- // For > 0.71, this will be replaced by `com.facebook.react:react-android:$version` by react gradle plugin
125
- //noinspection GradleDynamicVersion
126
- implementation 'com.facebook.react:react-android:0.75.3'
127
- implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
128
-
129
- implementation 'androidx.appcompat:appcompat:1.7.0'
130
- implementation 'com.google.code.gson:gson:2.8.8'
131
- implementation 'com.google.android.material:material:1.8.0'
132
- implementation 'androidx.activity:activity:1.9.3'
133
- implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
134
- implementation 'com.github.bumptech.glide:glide:4.15.1'
135
- implementation 'com.github.bumptech.glide:okhttp3-integration:4.15.1'
136
- implementation 'androidx.multidex:multidex:2.0.1'
137
- implementation "androidx.lifecycle:lifecycle-extensions:2.1.0"
138
-
139
- implementation 'com.orhanobut:logger:2.2.0'
140
-
141
- def room_version = "2.6.1"
142
- implementation "androidx.room:room-runtime:$room_version"
143
- annotationProcessor "androidx.room:room-compiler:$room_version"
144
- kapt "androidx.room:room-compiler:$room_version"
145
-
146
- // Optional - RxJava2 support for Room
147
- implementation "androidx.room:room-rxjava2:$room_version"
148
-
149
- // Optional - Guava support for Room
150
- implementation "androidx.room:room-guava:$room_version"
151
-
152
- // Optional - Kotlin Extensions and Coroutines support for Room
153
- implementation "androidx.room:room-ktx:$room_version"
154
-
155
- api 'io.reactivex.rxjava2:rxandroid:2.1.1'
156
-
157
- // ViewModel and LiveData
158
- api 'androidx.lifecycle:lifecycle-extensions:2.1.0'
159
- // alternatively - just ViewModel
160
- implementation 'androidx.lifecycle:lifecycle-viewmodel:2.1.0' // use -ktx for Kotlin
161
- // alternatively - just LiveData
162
- implementation 'androidx.lifecycle:lifecycle-livedata:2.1.0'
163
- // alternatively - Lifecycles only (no ViewModel or LiveData).
164
- // Support library depends on this lightweight import
165
- implementation 'androidx.lifecycle:lifecycle-runtime:2.1.0'
166
-
167
- // network
168
- implementation 'com.squareup.retrofit2:retrofit:2.9.0'
169
- implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
170
- implementation 'com.squareup.okhttp3:logging-interceptor:4.8.1'
171
- implementation 'com.squareup.retrofit2:adapter-rxjava2:2.9.0'
172
-
173
- implementation 'androidx.core:core-ktx:1.7.0'
174
- def kotlin_coroutinesVersion = "1.5.2"
175
- implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$kotlin_coroutinesVersion"
176
- def ktor_version = "1.6.5"
177
- implementation "io.ktor:ktor-client-core:$ktor_version"
178
- implementation "io.ktor:ktor-client-android:$ktor_version"
179
- implementation "io.ktor:ktor-client-serialization:$ktor_version"
180
- implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.3.1")
181
-
182
- implementation(name: 'library_zxing-release', ext: 'aar')
183
- implementation(name: 'algorithm-release', ext: 'aar')
184
- // implementation files('libs/library_zxing-release.aar')
185
- // implementation files('libs/algorithm-release.aar')
121
+ implementation fileTree(include: ['*.jar'], dir: 'libs')
122
+
123
+ // For < 0.71, this will be from the local maven repo
124
+ // For > 0.71, this will be replaced by `com.facebook.react:react-android:$version` by react gradle plugin
125
+ //noinspection GradleDynamicVersion
126
+ implementation 'com.facebook.react:react-android:0.75.3'
127
+ implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
128
+
129
+ implementation 'androidx.appcompat:appcompat:1.7.0'
130
+ implementation 'com.google.code.gson:gson:2.8.8'
131
+ implementation 'com.google.android.material:material:1.8.0'
132
+ implementation 'androidx.activity:activity:1.9.3'
133
+ implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
134
+ implementation 'com.github.bumptech.glide:glide:4.15.1'
135
+ implementation 'com.github.bumptech.glide:okhttp3-integration:4.15.1'
136
+ implementation 'androidx.multidex:multidex:2.0.1'
137
+ implementation "androidx.lifecycle:lifecycle-extensions:2.1.0"
138
+
139
+ implementation 'com.orhanobut:logger:2.2.0'
140
+
141
+ def room_version = "2.6.1"
142
+ implementation "androidx.room:room-runtime:$room_version"
143
+ annotationProcessor "androidx.room:room-compiler:$room_version"
144
+ kapt "androidx.room:room-compiler:$room_version"
145
+
146
+ // Optional - RxJava2 support for Room
147
+ implementation "androidx.room:room-rxjava2:$room_version"
148
+
149
+ // Optional - Guava support for Room
150
+ implementation "androidx.room:room-guava:$room_version"
151
+
152
+ // Optional - Kotlin Extensions and Coroutines support for Room
153
+ implementation "androidx.room:room-ktx:$room_version"
154
+
155
+ api 'io.reactivex.rxjava2:rxandroid:2.1.1'
156
+
157
+ // ViewModel and LiveData
158
+ api 'androidx.lifecycle:lifecycle-extensions:2.1.0'
159
+ // alternatively - just ViewModel
160
+ implementation 'androidx.lifecycle:lifecycle-viewmodel:2.1.0' // use -ktx for Kotlin
161
+ // alternatively - just LiveData
162
+ implementation 'androidx.lifecycle:lifecycle-livedata:2.1.0'
163
+ // alternatively - Lifecycles only (no ViewModel or LiveData).
164
+ // Support library depends on this lightweight import
165
+ implementation 'androidx.lifecycle:lifecycle-runtime:2.1.0'
166
+
167
+ // network
168
+ implementation 'com.squareup.retrofit2:retrofit:2.9.0'
169
+ implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
170
+ implementation 'com.squareup.okhttp3:logging-interceptor:4.8.1'
171
+ implementation 'com.squareup.retrofit2:adapter-rxjava2:2.9.0'
172
+
173
+ implementation 'androidx.core:core-ktx:1.7.0'
174
+ def kotlin_coroutinesVersion = "1.5.2"
175
+ implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$kotlin_coroutinesVersion"
176
+ def ktor_version = "1.6.5"
177
+ implementation "io.ktor:ktor-client-core:$ktor_version"
178
+ implementation "io.ktor:ktor-client-android:$ktor_version"
179
+ implementation "io.ktor:ktor-client-serialization:$ktor_version"
180
+ implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.3.1")
181
+
182
+ implementation(name: 'library_zxing-release', ext: 'aar')
183
+ implementation(name: 'algorithm-release', ext: 'aar')
184
+ // implementation files('libs/library_zxing-release.aar')
185
+ // implementation files('libs/algorithm-release.aar')
186
+
187
+ implementation 'com.pierfrancescosoffritti.androidyoutubeplayer:core:12.1.2'
188
+
186
189
  }
187
190
 
188
191
  if (isNewArchitectureEnabled()) {
189
- react {
190
- jsRootDir = file("../src/")
191
- libraryName = "MyTatvaRnSdkView"
192
- codegenJavaPackageName = "com.mytatvarnsdk"
193
- }
192
+ react {
193
+ jsRootDir = file("../src/")
194
+ libraryName = "MyTatvaRnSdkView"
195
+ codegenJavaPackageName = "com.mytatvarnsdk"
196
+ }
194
197
  }
@@ -29,6 +29,9 @@
29
29
  <application
30
30
  android:name=".MainApplication"
31
31
  android:allowBackup="false">
32
+ <activity
33
+ android:name=".activity.VideoActivity"
34
+ android:exported="false" />
32
35
  <activity
33
36
  android:name=".activity.ConnectSensorActivity"
34
37
  android:exported="false" />
@@ -59,4 +62,4 @@
59
62
  <activity android:name=".MainActivity" />
60
63
  </application>
61
64
 
62
- </manifest>
65
+ </manifest>
@@ -1,141 +1,144 @@
1
1
  <manifest xmlns:android="http://schemas.android.com/apk/res/android"
2
- xmlns:tools="http://schemas.android.com/tools"
3
- package="com.mytatvarnsdk">
4
-
5
- <uses-permission android:name="android.permission.INTERNET" />
6
- <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
7
- <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
8
-
9
- <!-- Bluetooth permissions for API 30 and below -->
10
- <uses-permission
11
- android:name="android.permission.BLUETOOTH_ADMIN"
12
- android:maxSdkVersion="30" />
13
-
14
- <!-- Bluetooth permissions for API 31+ (Android 12+) -->
15
- <uses-permission
16
- android:name="android.permission.BLUETOOTH_SCAN"
17
- android:usesPermissionFlags="neverForLocation"
18
- tools:targetApi="s" />
19
-
20
- <uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE" />
21
- <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
22
-
23
- <uses-permission
24
- android:name="android.permission.CHANGE_CONFIGURATION"
25
- tools:ignore="ProtectedPermissions" />
26
- <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> <!-- 只能在支持BLE的设备上安装此APP -->
27
- <uses-feature
28
- android:name="android.hardware.bluetooth_le"
29
- android:required="true" />
30
- <uses-feature
31
- android:name="android.hardware.bluetooth"
32
- android:required="false" />
33
-
34
- <!-- Declare the Bluetooth permission 蓝牙权限-->
35
- <uses-permission
36
- android:name="android.permission.BLUETOOTH"
37
- android:maxSdkVersion="30" />
38
-
39
- <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
40
- <uses-permission android:name="android.permission.VIBRATE" />
41
- <uses-permission
42
- android:name="android.permission.READ_LOGS"
43
- tools:ignore="ProtectedPermissions" />
44
- <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
45
- <!--<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />-->
46
- <uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
47
- <uses-permission android:name="android.permission.WAKE_LOCK" />
48
- <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
49
- <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
50
- <uses-permission android:name="android.permission.USE_FULL_SCREEN_INTENT" />
51
- <uses-permission
52
- android:name="android.permission.READ_EXTERNAL_STORAGE"
53
- android:maxSdkVersion="32" />
54
- <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
55
- <uses-permission
56
- android:name="android.permission.WRITE_EXTERNAL_STORAGE"
57
- android:maxSdkVersion="29"
58
- tools:ignore="ScopedStorage" />
59
- <uses-permission
60
- android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"
61
- tools:ignore="ProtectedPermissions" />
62
- <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
63
-
64
- <uses-permission android:name="android.permission.CAMERA" />
65
-
66
- <application
67
- android:name=".MainApplication"
68
- android:largeHeap="true"
69
- android:requestLegacyExternalStorage="true"
70
- android:usesCleartextTraffic="true">
71
-
72
- <service
73
- android:name="cgmblelib.ble.BleService"
74
- android:foregroundServiceType="location"
75
- android:priority="1000" />
76
-
77
- <activity
78
- android:name=".activity.PermissionActivity"
79
- android:exported="false"
80
- android:theme="@style/MyTheme" />
81
-
82
- <activity
83
- android:name=".activity.StartCGMActivity"
84
- android:exported="false"
85
- android:theme="@style/MyTheme" />
86
-
87
- <activity
88
- android:name=".MainActivity"
89
- android:theme="@style/MyTheme" />
90
-
91
- <activity
92
- android:name=".activity.SearchTransmitterActivity"
93
- android:exported="false"
94
- android:theme="@style/MyTheme" />
95
-
96
- <activity
97
- android:name=".activity.QRActivity"
98
- android:exported="false"
99
- android:theme="@style/MyTheme" />
100
-
101
- <activity
102
- android:name=".activity.PlaceSensorActivity"
103
- android:exported="false"
104
- android:theme="@style/MyTheme" />
105
-
106
- <activity
107
- android:name=".activity.SensorConnectSuccessActivity"
108
- android:exported="false"
109
- android:theme="@style/MyTheme" />
110
-
111
- <activity
112
- android:name=".activity.PlaceTransmitterActivity"
113
- android:exported="false"
114
- android:theme="@style/MyTheme" />
115
-
116
- <activity
117
- android:name=".activity.HelpActivity"
118
- android:exported="false"
119
- android:theme="@style/MyTheme" />
120
-
121
- <activity
122
- android:name=".activity.ConnectSensorActivity"
123
- android:exported="false"
124
- android:theme="@style/MyTheme" />
125
-
126
- <receiver
127
- android:name=".receiver.BootCompleteReceiver"
128
- android:directBootAware="true"
129
- android:enabled="true"
130
- android:exported="false"
131
- android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
132
- <intent-filter android:priority="1000">
133
- <action android:name="android.intent.action.BOOT_COMPLETED" />
134
- <action android:name="android.intent.action.LOCKED_BOOT_COMPLETED" />
135
-
136
- <category android:name="android.intent.category.LAUNCHER" />
137
- </intent-filter>
138
- </receiver>
139
- </application>
2
+ xmlns:tools="http://schemas.android.com/tools"
3
+ package="com.mytatvarnsdk">
4
+
5
+ <uses-permission android:name="android.permission.INTERNET" />
6
+ <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
7
+ <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
8
+
9
+ <!-- Bluetooth permissions for API 30 and below -->
10
+ <uses-permission
11
+ android:name="android.permission.BLUETOOTH_ADMIN"
12
+ android:maxSdkVersion="30" />
13
+
14
+ <!-- Bluetooth permissions for API 31+ (Android 12+) -->
15
+ <uses-permission
16
+ android:name="android.permission.BLUETOOTH_SCAN"
17
+ android:usesPermissionFlags="neverForLocation"
18
+ tools:targetApi="s" />
19
+
20
+ <uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE" />
21
+ <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
22
+
23
+ <uses-permission
24
+ android:name="android.permission.CHANGE_CONFIGURATION"
25
+ tools:ignore="ProtectedPermissions" />
26
+ <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> <!-- 只能在支持BLE的设备上安装此APP -->
27
+ <uses-feature
28
+ android:name="android.hardware.bluetooth_le"
29
+ android:required="true" />
30
+ <uses-feature
31
+ android:name="android.hardware.bluetooth"
32
+ android:required="false" />
33
+
34
+ <!-- Declare the Bluetooth permission 蓝牙权限-->
35
+ <uses-permission
36
+ android:name="android.permission.BLUETOOTH"
37
+ android:maxSdkVersion="30" />
38
+
39
+ <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
40
+ <uses-permission android:name="android.permission.VIBRATE" />
41
+ <uses-permission
42
+ android:name="android.permission.READ_LOGS"
43
+ tools:ignore="ProtectedPermissions" />
44
+ <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
45
+ <!--<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />-->
46
+ <uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
47
+ <uses-permission android:name="android.permission.WAKE_LOCK" />
48
+ <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
49
+ <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
50
+ <uses-permission android:name="android.permission.USE_FULL_SCREEN_INTENT" />
51
+ <uses-permission
52
+ android:name="android.permission.READ_EXTERNAL_STORAGE"
53
+ android:maxSdkVersion="32" />
54
+ <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
55
+ <uses-permission
56
+ android:name="android.permission.WRITE_EXTERNAL_STORAGE"
57
+ android:maxSdkVersion="29"
58
+ tools:ignore="ScopedStorage" />
59
+ <uses-permission
60
+ android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"
61
+ tools:ignore="ProtectedPermissions" />
62
+ <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
63
+
64
+ <uses-permission android:name="android.permission.CAMERA" />
65
+
66
+ <application
67
+ android:name=".MainApplication"
68
+ android:largeHeap="true"
69
+ android:requestLegacyExternalStorage="true"
70
+ android:usesCleartextTraffic="true">
71
+
72
+ <service
73
+ android:name="cgmblelib.ble.BleService"
74
+ android:foregroundServiceType="location"
75
+ android:priority="1000" />
76
+
77
+ <activity
78
+ android:name=".activity.PermissionActivity"
79
+ android:exported="false"
80
+ android:theme="@style/MyTheme" />
81
+
82
+ <activity
83
+ android:name=".activity.StartCGMActivity"
84
+ android:exported="false"
85
+ android:theme="@style/MyTheme" />
86
+
87
+ <activity
88
+ android:name=".MainActivity"
89
+ android:theme="@style/MyTheme" />
90
+
91
+ <activity
92
+ android:name=".activity.SearchTransmitterActivity"
93
+ android:exported="false"
94
+ android:theme="@style/MyTheme" />
95
+
96
+ <activity
97
+ android:name=".activity.QRActivity"
98
+ android:exported="false"
99
+ android:theme="@style/MyTheme" />
100
+
101
+ <activity
102
+ android:name=".activity.PlaceSensorActivity"
103
+ android:exported="false"
104
+ android:theme="@style/MyTheme" />
105
+
106
+ <activity
107
+ android:name=".activity.SensorConnectSuccessActivity"
108
+ android:exported="false"
109
+ android:theme="@style/MyTheme" />
110
+
111
+ <activity
112
+ android:name=".activity.PlaceTransmitterActivity"
113
+ android:exported="false"
114
+ android:theme="@style/MyTheme" />
115
+
116
+ <activity
117
+ android:name=".activity.HelpActivity"
118
+ android:exported="false" />
119
+
120
+ <activity
121
+ android:name=".activity.ConnectSensorActivity"
122
+ android:exported="false"
123
+ android:theme="@style/MyTheme" />
124
+
125
+ <activity
126
+ android:name=".activity.VideoActivity"
127
+ android:exported="false"/>
128
+
129
+ <receiver
130
+ android:name=".receiver.BootCompleteReceiver"
131
+ android:directBootAware="true"
132
+ android:enabled="true"
133
+ android:exported="false"
134
+ android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
135
+ <intent-filter android:priority="1000">
136
+ <action android:name="android.intent.action.BOOT_COMPLETED" />
137
+ <action android:name="android.intent.action.LOCKED_BOOT_COMPLETED" />
138
+
139
+ <category android:name="android.intent.category.LAUNCHER" />
140
+ </intent-filter>
141
+ </receiver>
142
+ </application>
140
143
 
141
144
  </manifest>