Тело:
Проблема:
Я работаю над приложением 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
Как определить, когда пользователь отвечает на звонок, в плагине Cordova (Java и JavaScript) ⇐ JAVA
Программисты JAVA общаются здесь
1734516018
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
}
);```
Подробнее здесь: [url]https://stackoverflow.com/questions/79290684/how-to-detect-when-a-user-picks-up-a-call-in-a-cordova-plugin-java-javascript[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия