Как определить, когда пользователь отвечает на звонок, в плагине Cordova (Java и JavaScript)JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как определить, когда пользователь отвечает на звонок, в плагине Cordova (Java и JavaScript)

Сообщение Anonymous »

Тело:
Проблема:
Я работаю над приложением Cordova, и мне нужно определить, когда пользователь отвечает на телефонный звонок. В частности, я хочу знать, когда микрофон используется для вызова (в режиме вызова) без фактической записи звука.
Я создал собственный плагин Cordova на Java и использую AudioManager, чтобы проверить, находится ли система в режиме вызова. Плагин должен иметь возможность определять, когда пользователь отвечает на звонок, и уведомлять об этом сторону JavaScript приложения.
Вот как я этого достигаю:
Код Java-плагина
```package com.geek.monitor;

import org.json.JSONArray;

import android.content.Context;
import org.apache.cordova.*;
import org.json.JSONException;
import org.json.JSONObject;
import android.media.AudioManager;
import android.media.AudioRecord;
import android.media.MediaRecorder;
import android.media.AudioFormat;

public class Monitor extends CordovaPlugin {
private CallbackContext callbackContext;

@Override
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) {
this.callbackContext = callbackContext;

if (action.equals("checkMicrophoneStatus")) {
checkMicrophoneStatus(callbackContext);
return true;
}

return false;
}

private void checkMicrophoneStatus(CallbackContext callbackContext) {
// Step 1: Check if the microphone is muted using AudioManager
AudioManager audioManager = (AudioManager) cordova.getActivity().getSystemService(Context.AUDIO_SERVICE);
boolean isMuted = audioManager.isMicrophoneMute();

if (isMuted) {
// If the microphone is muted, return a failure response
callbackContext.error("Microphone is muted or unavailable");
} else {
// Step 2: Check if the system is in call mode
int mode = audioManager.getMode();

if (mode == AudioManager.MODE_IN_CALL) {
// If the system is in call mode, the microphone is in use for a call
callbackContext.success("Picked-up");
} else {
// If not in call mode, the microphone is not in use for a call
callbackContext.success("Not in call use");
}
}
}
}```

Вот код Javascript плагина
```exports.checkMicrophoneStatus = function (successCallback, errorCallback) {
exec(successCallback, errorCallback, 'Monitor', 'checkMicrophoneStatus');
}```

Вот как звонить из js
```cordova.plugins.Monitor.checkMicrophoneStatus(
function (status) {
console.log(status); // "Picked-up" or "Not in call use"
},
function (error) {

console.error(error); // error message
}

);```


Подробнее здесь: https://stackoverflow.com/questions/792 ... javascript
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»