Skip to content

Commit 3b81f54

Browse files
authored
Update to gradle version 8.13 and target API level 36 (#1886)
* Remove package from manifest and put in build.gradle * Update gradle version to 8.2.2 * Update gradle version to 8.2.2 * update maven plugin * add buildFeatures aidl as suggested by AGP update assistant * Formatting * add androidTestImplementation 'androidx.test:rules:1.5.0' to test permission in unit test, update unit test imports * Add permissions queries for routerService to Android test manifest * Add TestSdlReceiver for unit test * Reset SDK_INT version in AudioStreamManagerTest after it is changed for tests * update manager layer test sleep calls to 1 sec * Update DeviceUtil.isEmulator to catch new emulator for ci checks * grant BLUETOOTH_CONNECT for TransportManagerTests * grant BLUETOOTH_CONNECT permission for MediaStreamingStatusTests * Ignore TransportBrokerTest with note to have an app with a running RouterService for test to work. * MultiplexBluetoothTransportTest testStateTransitions only check state if device is not an emulator, New emulator actually works, so to prevent incompatibility with older emulators only check on actual devices * Starting with API 30 we can not use reflection to fake NetworkCapabilities, only doing certain checks on API levels less then 30 for WiFiSocketFactoryTest * update comment for WiFiSocketFactoryTest * Update yml to target proper API level, use newer JDK and beef up emulator * Update targetSdkVersion to 36 and minSdkVersion to 21 * Update gradle to 8.13 * update dependencies * update CI * downgrade api level on CI * try arm runner with api level 36 * update android test to use arm based emulator for api 36 * update to run on ubuntu with x86_64 android image * change back to mac * beef up emulator * update emulator options * Use ubuntu runner * improve emulator boot time * use google_apis for the emulator type * Add enable kvm to make Android emulator run faster
1 parent cc45527 commit 3b81f54

21 files changed

+163
-52
lines changed

.github/workflows/android.yml

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ on: [push, pull_request, workflow_dispatch]
44

55
jobs:
66
test_Android:
7-
runs-on: macOS-latest
7+
runs-on: ubuntu-latest
88
steps:
99

1010
- name: Checkout
@@ -15,15 +15,29 @@ jobs:
1515
- name: Setup JDK
1616
uses: actions/setup-java@v1
1717
with:
18-
java-version: 11
19-
20-
- name: Sdl Android Tests
21-
# For more info, please check out: https://github.com/marketplace/actions/android-emulator-runner
18+
java-version: 17
19+
20+
- name: Enable KVM group perms
21+
run: |
22+
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
23+
sudo udevadm control --reload-rules
24+
sudo udevadm trigger --name-match=kvm
25+
ls -l /dev/kvm || true
26+
27+
- name: SDL Android Tests
2228
uses: reactivecircus/android-emulator-runner@v2
2329
with:
24-
api-level: 29
25-
script: ./android/gradlew -p ./android :sdl_android:connectedCheck
26-
30+
api-level: 36
31+
target: google_apis
32+
arch: x86_64
33+
profile: pixel_7
34+
ram-size: 2048M
35+
disk-size: 4096M
36+
disable-animations: true
37+
emulator-boot-timeout: 1200
38+
emulator-options: "-no-window -no-snapshot -no-audio"
39+
script: ./android/gradlew -p ./android :sdl_android:connectedDebugAndroidTest
40+
2741
- name: Hello Sdl Android Tests
2842
run: ./android/gradlew -p ./android/hello_sdl_android test
2943

@@ -33,7 +47,7 @@ jobs:
3347
yml: ./codecov.yml
3448

3549
test_Java:
36-
runs-on: macOS-latest
50+
runs-on: ubuntu-latest
3751
steps:
3852

3953
- name: Checkout

android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ buildscript {
77
mavenCentral()
88
}
99
dependencies {
10-
classpath 'com.android.tools.build:gradle:7.4.2'
10+
classpath 'com.android.tools.build:gradle:8.13.0'
1111

1212

1313
// NOTE: Do not place your application dependencies here; they belong

android/gradle.properties

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@
1010
# Specifies the JVM arguments used for the daemon process.
1111
# The setting is particularly useful for tweaking memory settings.
1212
android.enableJetifier=true
13+
android.defaults.buildfeatures.buildconfig=true
14+
android.nonFinalResIds=false
15+
android.nonTransitiveRClass=false
1316
android.useAndroidX=true
1417
org.gradle.jvmargs=-Xmx1536m
1518

android/gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
33
distributionPath=wrapper/dists
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists
6-
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip
6+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-all.zip

android/hello_sdl_android/build.gradle

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
apply plugin: 'com.android.application'
22

33
android {
4-
compileSdkVersion 34
4+
compileSdkVersion 36
55
defaultConfig {
66
applicationId "com.sdl.hellosdlandroid"
7-
minSdkVersion 16
8-
targetSdkVersion 34
7+
minSdkVersion 21
8+
targetSdkVersion 36
99
versionCode 1
1010
versionName "1.0"
1111
resValue "string", "app_name", "Hello Sdl Android"
@@ -61,6 +61,7 @@ android {
6161
lintOptions {
6262
disable 'GoogleAppIndexingWarning'
6363
}
64+
namespace 'com.sdl.hellosdlandroid'
6465
}
6566

6667

@@ -69,7 +70,7 @@ dependencies {
6970
androidTestImplementation('androidx.test.espresso:espresso-core:3.1.0', {
7071
exclude group: 'com.android.support', module: 'support-annotations'
7172
})
72-
implementation 'androidx.appcompat:appcompat:1.2.0'
73+
implementation 'androidx.appcompat:appcompat:1.7.1'
7374
implementation project(path: ':sdl_android')
74-
testImplementation 'junit:junit:4.12'
75+
testImplementation 'junit:junit:4.13.2'
7576
}

android/hello_sdl_android/src/main/AndroidManifest.xml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3-
xmlns:tools="http://schemas.android.com/tools"
4-
package="com.sdl.hellosdlandroid">
3+
xmlns:tools="http://schemas.android.com/tools">
54

65
<uses-permission android:name="android.permission.BLUETOOTH" />
76
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT"

android/sdl_android/build.gradle

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
apply plugin: 'com.android.library'
22

33
android {
4-
compileSdkVersion 34
4+
compileSdkVersion 36
55
defaultConfig {
6-
minSdkVersion 16
7-
targetSdkVersion 34
8-
versionCode 26
9-
versionName new File(projectDir.path, ('/../../VERSION')).text.trim()
6+
minSdkVersion 21
7+
targetSdkVersion 36
108
buildConfigField "String", "VERSION_NAME", '\"' + versionName + '\"'
119
resValue "string", "SDL_LIB_VERSION", '\"' + versionName + '\"'
1210
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
@@ -38,25 +36,33 @@ android {
3836
main.java.srcDirs += '../../base/src/main/java'
3937
androidTest.assets.srcDirs += '../../generator/rpc_spec/'
4038
}
39+
40+
buildFeatures {
41+
aidl true
42+
}
43+
44+
namespace 'com.smartdevicelink'
45+
testNamespace 'com.smartdevicelink.test'
4146
}
4247

4348
ext { VERSION_NAME = "$project.android.defaultConfig.versionName" }
4449

4550
dependencies {
4651
api fileTree(dir: 'libs', include: ['*.jar'])
4752
//api 'com.livio.taskmaster:taskmaster:0.6.0'
48-
api 'com.smartdevicelink:bson_java_port:1.2.5'
53+
api 'com.smartdevicelink:bson_java_port:1.2.6'
4954
api 'androidx.lifecycle:lifecycle-extensions:2.2.0'
50-
api 'androidx.annotation:annotation:1.1.0'
51-
annotationProcessor 'androidx.lifecycle:lifecycle-compiler:2.2.0'
55+
api 'androidx.annotation:annotation:1.9.1'
56+
annotationProcessor 'androidx.lifecycle:lifecycle-compiler:2.9.4'
5257

53-
testImplementation 'junit:junit:4.12'
54-
testImplementation 'org.mockito:mockito-core:5.7.0'
55-
androidTestImplementation 'org.mockito:mockito-core:5.7.0'
56-
androidTestImplementation 'org.mockito:mockito-android:5.7.0'
57-
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
58-
androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
59-
androidTestImplementation 'androidx.test.espresso:espresso-intents:3.5.1'
58+
testImplementation 'junit:junit:4.13.2'
59+
testImplementation 'org.mockito:mockito-core:5.20.0'
60+
androidTestImplementation 'androidx.test:rules:1.7.0'
61+
androidTestImplementation 'org.mockito:mockito-core:5.20.0'
62+
androidTestImplementation 'org.mockito:mockito-android:5.20.0'
63+
androidTestImplementation 'androidx.test.ext:junit:1.3.0'
64+
androidTestImplementation 'androidx.test.espresso:espresso-core:3.7.0'
65+
androidTestImplementation 'androidx.test.espresso:espresso-intents:3.7.0'
6066
}
6167

6268
buildscript {
@@ -65,7 +71,7 @@ buildscript {
6571
}
6672
dependencies {
6773
classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1'
68-
classpath 'com.vanniktech:gradle-maven-publish-plugin:0.13.0'
74+
classpath 'com.vanniktech:gradle-maven-publish-plugin:0.34.0'
6975
}
7076
}
7177

android/sdl_android/src/androidTest/AndroidManifest.xml

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
1-
<manifest package="com.smartdevicelink.test"
2-
xmlns:android="http://schemas.android.com/apk/res/android">
1+
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
32

4-
<uses-sdk android:minSdkVersion="16" />
3+
<uses-sdk android:minSdkVersion="21" />
54
<uses-permission android:name="android.permission.BLUETOOTH" />
65
<!-- Required to pair Bluetooth devices -->
76
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
@@ -13,10 +12,33 @@
1312
android:name="android.test.InstrumentationTestRunner"
1413
android:targetPackage="com.smartdevicelink.test" />
1514
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
15+
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
16+
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
17+
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
18+
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_CONNECTED_DEVICE" />
19+
20+
<queries>
21+
<intent>
22+
<action android:name="com.smartdevicelink.router.service" />
23+
</intent>
24+
<intent>
25+
<action android:name="sdl.router.startservice" />
26+
</intent>
27+
</queries>
1628

1729
<application android:debuggable="true">
1830
<uses-library android:name="android.test.runner" />
1931
<activity android:name="com.smartdevicelink.managers.lockscreen.SDLLockScreenActivity" />
32+
<receiver
33+
android:name=".TestSdlReceiver"
34+
android:enabled="true"
35+
android:exported="true">
36+
<intent-filter>
37+
<action android:name="com.smartdevicelink.USB_ACCESSORY_ATTACHED" /> <!--For AOA -->
38+
<action android:name="android.bluetooth.device.action.ACL_CONNECTED" />
39+
<action android:name="sdl.router.startservice" />
40+
</intent-filter>
41+
</receiver>
2042
</application>
2143

2244
</manifest>
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.smartdevicelink;
2+
3+
import android.content.BroadcastReceiver;
4+
import android.content.Context;
5+
import android.content.Intent;
6+
7+
/**
8+
* Added so we pass IntegrationValidator when running unit test.
9+
*/
10+
public class TestSdlReceiver extends BroadcastReceiver {
11+
@Override
12+
public void onReceive(Context context, Intent intent) {
13+
}
14+
}

android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/audio/AudioStreamManagerTest.java

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,99 +134,131 @@ public void onComplete(boolean success) {
134134
}
135135

136136
public void testWithSquareSampleAudio16BitAnd8KhzApi16() throws Exception {
137+
int versionCode = Build.VERSION.SDK_INT;
137138
setFinalStatic(Build.VERSION.class.getField("SDK_INT"), 16);
138139
AudioPassThruCapabilities audioPassThruCapabilities = new AudioPassThruCapabilities(SamplingRate._8KHZ, BitsPerSample._16_BIT, AudioType.PCM);
139140
runFullAudioManagerDecodeFlowWithSquareSampleAudio(8000, SampleType.SIGNED_16_BIT, audioPassThruCapabilities);
141+
setFinalStatic(Build.VERSION.class.getField("SDK_INT"), versionCode);
140142
}
141143

142144
public void testWithSquareSampleAudio16BitAnd16KhzApi16() throws Exception {
145+
int versionCode = Build.VERSION.SDK_INT;
143146
setFinalStatic(Build.VERSION.class.getField("SDK_INT"), 16);
144147
AudioPassThruCapabilities audioPassThruCapabilities = new AudioPassThruCapabilities(SamplingRate._16KHZ, BitsPerSample._16_BIT, AudioType.PCM);
145148
runFullAudioManagerDecodeFlowWithSquareSampleAudio(16000, SampleType.SIGNED_16_BIT, audioPassThruCapabilities);
149+
setFinalStatic(Build.VERSION.class.getField("SDK_INT"), versionCode);
146150
}
147151

148152
public void testWithSquareSampleAudio16BitAnd22KhzApi16() throws Exception {
153+
int versionCode = Build.VERSION.SDK_INT;
149154
setFinalStatic(Build.VERSION.class.getField("SDK_INT"), 16);
150155
AudioPassThruCapabilities audioPassThruCapabilities = new AudioPassThruCapabilities(SamplingRate._22KHZ, BitsPerSample._16_BIT, AudioType.PCM);
151156
runFullAudioManagerDecodeFlowWithSquareSampleAudio(22050, SampleType.SIGNED_16_BIT, audioPassThruCapabilities);
157+
setFinalStatic(Build.VERSION.class.getField("SDK_INT"), versionCode);
152158
}
153159

154160
public void testWithSquareSampleAudio16BitAnd44KhzApi16() throws Exception {
161+
int versionCode = Build.VERSION.SDK_INT;
155162
setFinalStatic(Build.VERSION.class.getField("SDK_INT"), 16);
156163
AudioPassThruCapabilities audioPassThruCapabilities = new AudioPassThruCapabilities(SamplingRate._44KHZ, BitsPerSample._16_BIT, AudioType.PCM);
157164
runFullAudioManagerDecodeFlowWithSquareSampleAudio(44100, SampleType.SIGNED_16_BIT, audioPassThruCapabilities);
165+
setFinalStatic(Build.VERSION.class.getField("SDK_INT"), versionCode);
158166
}
159167

160168
public void testWithSquareSampleAudio8BitAnd8KhzApi16() throws Exception {
169+
int versionCode = Build.VERSION.SDK_INT;
161170
setFinalStatic(Build.VERSION.class.getField("SDK_INT"), 16);
162171
AudioPassThruCapabilities audioPassThruCapabilities = new AudioPassThruCapabilities(SamplingRate._8KHZ, BitsPerSample._8_BIT, AudioType.PCM);
163172
runFullAudioManagerDecodeFlowWithSquareSampleAudio(8000, SampleType.UNSIGNED_8_BIT, audioPassThruCapabilities);
173+
setFinalStatic(Build.VERSION.class.getField("SDK_INT"), versionCode);
164174
}
165175

166176
public void testWithSquareSampleAudio8BitAnd16KhzApi16() throws Exception {
177+
int versionCode = Build.VERSION.SDK_INT;
167178
setFinalStatic(Build.VERSION.class.getField("SDK_INT"), 16);
168179
AudioPassThruCapabilities audioPassThruCapabilities = new AudioPassThruCapabilities(SamplingRate._16KHZ, BitsPerSample._8_BIT, AudioType.PCM);
169180
runFullAudioManagerDecodeFlowWithSquareSampleAudio(16000, SampleType.UNSIGNED_8_BIT, audioPassThruCapabilities);
181+
setFinalStatic(Build.VERSION.class.getField("SDK_INT"), versionCode);
170182
}
171183

172184
public void testWithSquareSampleAudio8BitAnd22KhzApi16() throws Exception {
185+
int versionCode = Build.VERSION.SDK_INT;
173186
setFinalStatic(Build.VERSION.class.getField("SDK_INT"), 16);
174187
AudioPassThruCapabilities audioPassThruCapabilities = new AudioPassThruCapabilities(SamplingRate._22KHZ, BitsPerSample._8_BIT, AudioType.PCM);
175188
runFullAudioManagerDecodeFlowWithSquareSampleAudio(22050, SampleType.UNSIGNED_8_BIT, audioPassThruCapabilities);
189+
setFinalStatic(Build.VERSION.class.getField("SDK_INT"), versionCode);
176190
}
177191

178192
public void testWithSquareSampleAudio8BitAnd44KhzApi16() throws Exception {
193+
int versionCode = Build.VERSION.SDK_INT;
179194
setFinalStatic(Build.VERSION.class.getField("SDK_INT"), 16);
180195
AudioPassThruCapabilities audioPassThruCapabilities = new AudioPassThruCapabilities(SamplingRate._44KHZ, BitsPerSample._8_BIT, AudioType.PCM);
181196
runFullAudioManagerDecodeFlowWithSquareSampleAudio(44100, SampleType.UNSIGNED_8_BIT, audioPassThruCapabilities);
197+
setFinalStatic(Build.VERSION.class.getField("SDK_INT"), versionCode);
182198
}
183199

184200
public void testWithSquareSampleAudio16BitAnd8KhzApi21() throws Exception {
201+
int versionCode = Build.VERSION.SDK_INT;
185202
setFinalStatic(Build.VERSION.class.getField("SDK_INT"), 21);
186203
AudioPassThruCapabilities audioPassThruCapabilities = new AudioPassThruCapabilities(SamplingRate._8KHZ, BitsPerSample._16_BIT, AudioType.PCM);
187204
runFullAudioManagerDecodeFlowWithSquareSampleAudio(8000, SampleType.SIGNED_16_BIT, audioPassThruCapabilities);
205+
setFinalStatic(Build.VERSION.class.getField("SDK_INT"), versionCode);
188206
}
189207

190208
public void testWithSquareSampleAudio16BitAnd16KhzApi21() throws Exception {
209+
int versionCode = Build.VERSION.SDK_INT;
191210
setFinalStatic(Build.VERSION.class.getField("SDK_INT"), 21);
192211
AudioPassThruCapabilities audioPassThruCapabilities = new AudioPassThruCapabilities(SamplingRate._16KHZ, BitsPerSample._16_BIT, AudioType.PCM);
193212
runFullAudioManagerDecodeFlowWithSquareSampleAudio(16000, SampleType.SIGNED_16_BIT, audioPassThruCapabilities);
213+
setFinalStatic(Build.VERSION.class.getField("SDK_INT"), versionCode);
194214
}
195215

196216
public void testWithSquareSampleAudio16BitAnd22KhzApi21() throws Exception {
217+
int versionCode = Build.VERSION.SDK_INT;
197218
setFinalStatic(Build.VERSION.class.getField("SDK_INT"), 21);
198219
AudioPassThruCapabilities audioPassThruCapabilities = new AudioPassThruCapabilities(SamplingRate._22KHZ, BitsPerSample._16_BIT, AudioType.PCM);
199220
runFullAudioManagerDecodeFlowWithSquareSampleAudio(22050, SampleType.SIGNED_16_BIT, audioPassThruCapabilities);
221+
setFinalStatic(Build.VERSION.class.getField("SDK_INT"), versionCode);
200222
}
201223

202224
public void testWithSquareSampleAudio16BitAnd44KhzApi21() throws Exception {
225+
int versionCode = Build.VERSION.SDK_INT;
203226
setFinalStatic(Build.VERSION.class.getField("SDK_INT"), 21);
204227
AudioPassThruCapabilities audioPassThruCapabilities = new AudioPassThruCapabilities(SamplingRate._44KHZ, BitsPerSample._16_BIT, AudioType.PCM);
205228
runFullAudioManagerDecodeFlowWithSquareSampleAudio(44100, SampleType.SIGNED_16_BIT, audioPassThruCapabilities);
229+
setFinalStatic(Build.VERSION.class.getField("SDK_INT"), versionCode);
206230
}
207231

208232
public void testWithSquareSampleAudio8BitAnd8KhzApi21() throws Exception {
233+
int versionCode = Build.VERSION.SDK_INT;
209234
setFinalStatic(Build.VERSION.class.getField("SDK_INT"), 21);
210235
AudioPassThruCapabilities audioPassThruCapabilities = new AudioPassThruCapabilities(SamplingRate._8KHZ, BitsPerSample._8_BIT, AudioType.PCM);
211236
runFullAudioManagerDecodeFlowWithSquareSampleAudio(8000, SampleType.UNSIGNED_8_BIT, audioPassThruCapabilities);
237+
setFinalStatic(Build.VERSION.class.getField("SDK_INT"), versionCode);
212238
}
213239

214240
public void testWithSquareSampleAudio8BitAnd16KhzApi21() throws Exception {
241+
int versionCode = Build.VERSION.SDK_INT;
215242
setFinalStatic(Build.VERSION.class.getField("SDK_INT"), 21);
216243
AudioPassThruCapabilities audioPassThruCapabilities = new AudioPassThruCapabilities(SamplingRate._16KHZ, BitsPerSample._8_BIT, AudioType.PCM);
217244
runFullAudioManagerDecodeFlowWithSquareSampleAudio(16000, SampleType.UNSIGNED_8_BIT, audioPassThruCapabilities);
245+
setFinalStatic(Build.VERSION.class.getField("SDK_INT"), versionCode);
218246
}
219247

220248
public void testWithSquareSampleAudio8BitAnd22KhzApi21() throws Exception {
249+
int versionCode = Build.VERSION.SDK_INT;
221250
setFinalStatic(Build.VERSION.class.getField("SDK_INT"), 21);
222251
AudioPassThruCapabilities audioPassThruCapabilities = new AudioPassThruCapabilities(SamplingRate._22KHZ, BitsPerSample._8_BIT, AudioType.PCM);
223252
runFullAudioManagerDecodeFlowWithSquareSampleAudio(22050, SampleType.UNSIGNED_8_BIT, audioPassThruCapabilities);
253+
setFinalStatic(Build.VERSION.class.getField("SDK_INT"), versionCode);
224254
}
225255

226256
public void testWithSquareSampleAudio8BitAnd44KhzApi21() throws Exception {
257+
int versionCode = Build.VERSION.SDK_INT;
227258
setFinalStatic(Build.VERSION.class.getField("SDK_INT"), 21);
228259
AudioPassThruCapabilities audioPassThruCapabilities = new AudioPassThruCapabilities(SamplingRate._44KHZ, BitsPerSample._8_BIT, AudioType.PCM);
229260
runFullAudioManagerDecodeFlowWithSquareSampleAudio(44100, SampleType.UNSIGNED_8_BIT, audioPassThruCapabilities);
261+
setFinalStatic(Build.VERSION.class.getField("SDK_INT"), versionCode);
230262
}
231263

232264
private int testFullAudioManagerDecodeFlowCorrectCounter = 0;

0 commit comments

Comments
 (0)