This is an automated email from the ASF dual-hosted git repository.
erisu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cordova-plugin-media.git
The following commit(s) were added to refs/heads/master by this push:
new 0938ec0 feat(android): support Android 13 permission checks and
requests (#382)
0938ec0 is described below
commit 0938ec090ebce5920275b6564cb340551761ca6e
Author: エリス <[email protected]>
AuthorDate: Tue Aug 22 23:36:11 2023 +0900
feat(android): support Android 13 permission checks and requests (#382)
---
src/android/AudioHandler.java | 38 ++++++++++++++------------------------
1 file changed, 14 insertions(+), 24 deletions(-)
diff --git a/src/android/AudioHandler.java b/src/android/AudioHandler.java
index 4c8a29c..51a0bdf 100644
--- a/src/android/AudioHandler.java
+++ b/src/android/AudioHandler.java
@@ -31,7 +31,6 @@ import android.media.AudioManager.OnAudioFocusChangeListener;
import android.net.Uri;
import android.os.Build;
-import java.security.Permission;
import java.util.ArrayList;
import org.apache.cordova.LOG;
@@ -62,8 +61,7 @@ public class AudioHandler extends CordovaPlugin {
private int origVolumeStream = -1;
private CallbackContext messageChannel;
-
- public static String [] permissions = { Manifest.permission.RECORD_AUDIO,
Manifest.permission.WRITE_EXTERNAL_STORAGE};
+ // Permission Request Codes
public static int RECORD_AUDIO = 0;
public static int WRITE_EXTERNAL_STORAGE = 1;
@@ -85,17 +83,6 @@ public class AudioHandler extends CordovaPlugin {
return cordova.getActivity().getApplicationContext();
}
- protected void getWritePermission(int requestCode)
- {
- PermissionHelper.requestPermission(this, requestCode,
permissions[WRITE_EXTERNAL_STORAGE]);
- }
-
-
- protected void getMicPermission(int requestCode)
- {
- PermissionHelper.requestPermission(this, requestCode,
permissions[RECORD_AUDIO]);
- }
-
/**
* Executes the request and returns PluginResult.
@@ -562,19 +549,22 @@ public class AudioHandler extends CordovaPlugin {
private void promptForRecord()
{
- if(PermissionHelper.hasPermission(this,
permissions[WRITE_EXTERNAL_STORAGE]) &&
- PermissionHelper.hasPermission(this,
permissions[RECORD_AUDIO])) {
- this.startRecordingAudio(recordId,
FileHelper.stripFileProtocol(fileUriStr));
- }
- else if(PermissionHelper.hasPermission(this,
permissions[RECORD_AUDIO]))
- {
- getWritePermission(WRITE_EXTERNAL_STORAGE);
+ // If Android < 33, check for WRITE_EXTERNAL_STORAGE permission
+ if (android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
+ if (!PermissionHelper.hasPermission(this,
Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
+ PermissionHelper.requestPermission(this,
WRITE_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE);
+ return;
+ }
}
- else
- {
- getMicPermission(RECORD_AUDIO);
+
+ // For all Android versions, check for RECORD_AUDIO permission
+ if (!PermissionHelper.hasPermission(this,
Manifest.permission.RECORD_AUDIO)) {
+ PermissionHelper.requestPermission(this, RECORD_AUDIO,
Manifest.permission.RECORD_AUDIO);
+ return;
}
+ // Start recording if all necessary permissions were granted.
+ this.startRecordingAudio(recordId,
FileHelper.stripFileProtocol(fileUriStr));
}
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]