diff --git a/dev/integration_tests/ui/android/app/src/main/AndroidManifest.xml b/dev/integration_tests/ui/android/app/src/main/AndroidManifest.xml index 320bec74e38c..25961f4f0769 100644 --- a/dev/integration_tests/ui/android/app/src/main/AndroidManifest.xml +++ b/dev/integration_tests/ui/android/app/src/main/AndroidManifest.xml @@ -19,6 +19,7 @@ found in the LICENSE file. --> [ + flutterBin, + 'create', + tempDir.path, + '--project-name=testapp', + ], workingDirectory: tempDir.path); + expect(result.exitCode, 0); + + final File api33File = tempDir + .childDirectory('android') + .childDirectory('app') + .childDirectory('src') + .childDirectory('main') + .childDirectory('java') + .childFile('Android33Api.java'); + + api33File.createSync(recursive: true); + // AccessibilityManager.isAudioDescriptionRequested() is an API 33 feature + api33File.writeAsStringSync(''' +import android.app.Activity; +import android.view.accessibility.AccessibilityManager; +import androidx.annotation.Keep; +import io.flutter.Log; + +@Keep +public final class Android33Api extends Activity { + private AccessibilityManager accessibilityManager; + + public Android33Api() { + accessibilityManager = getSystemService(AccessibilityManager.class); + } + + public void doSomething() { + if (accessibilityManager.isAudioDescriptionRequested()) { + Log.e("flutter", "User has requested to enable audio descriptions"); + } + } +} + +'''); + + result = await processManager.run([ + flutterBin, + ...getLocalEngineArguments(), + 'build', + 'apk', + ], workingDirectory: tempDir.path); + expect(result.exitCode, 0); + expect(result.stdout.toString(), contains('app-release.apk')); + }); +}