Перейти к содержанию
Fire Monkey от А до Я
  • 0

Как включать/отключать звук и вибрацию?


Rusland

Вопрос

Рекомендуемые сообщения

  • 0

Народ, что с вами? Сколько уже вопросов без ответов... все самому приходится разбирать  :(

 

Вот написал процедурку переключения режимов в Андроид, пользуйтесь на здоровье:

uses
  Androidapi.JNIBridge,    
  Androidapi.Helpers,      
  AndroidApi.JNI.Media,    
  Androidapi.JNI.GraphicsContentViewText,
  Androidapi.JNI.App,      
  Androidapi.JNI.JavaTypes;


procedure RingerMode(Mode:integer);
var
  AudioObj: JObject;
  AudioMng: JAudioManager;
begin                                    
  AudioObj:=SharedActivity.getSystemService(TJContext.JavaClass.AUDIO_SERVICE);
  AudioMng:=TJAudioManager.Wrap((AudioObj as ILocalObject).GetObjectID);
 
  case Mode of
    0: AudioMng.setRingerMode(TJAudioManager.JavaClass.RINGER_MODE_SILENT);
    1: AudioMng.setRingerMode(TJAudioManager.JavaClass.RINGER_MODE_VIBRATE);
    2: AudioMng.setRingerMode(TJAudioManager.JavaClass.RINGER_MODE_NORMAL);
  else AudioMng.setRingerMode(TJAudioManager.JavaClass.RINGER_MODE_NORMAL);
  end;
end;
Изменено пользователем Rusland
Ссылка на комментарий
  • 0

Ну и узнать режим звонка можно так:

function GetRingerMode():integer; 
var
  AudioObj: JObject;
  Audio: JAudioManager;
begin
  AudioObj:=SharedActivity.getSystemService(TJContext.JavaClass.AUDIO_SERVICE);
  Audio:=TJAudioManager.Wrap((AudioObj as ILocalObject).GetObjectID);

  Result:=Audio.getRingerMode; // 0 - silent, 1 - vibrate, 2 - normal
end;

Ссылка на комментарий
  • 0

вот еще не большой  пример. например приложение свернуто и есть  NotificationCenter. Пришло уведомление и было бы неплохо оповестить пользователя вибрацией.

Цитата

uses
 {$IFDEF ANDROID} FMX.Helpers.Android, Androidapi.JNI.JavaTypes, Androidapi.JNI.Os,
  Androidapi.JNI.App, Androidapi.JNIBridge, Androidapi.JNI.GraphicsContentViewText,  AndroidApi.Helpers, AndroidApi.JNI.Net,
 AndroidApi.JNI.Provider, AndroidApi.JNI.Telephony,
  FMX.PhoneDialer.Android {$ENDIF} ;


procedure TForm1.Button1Click(Sender: TObject);
var
  VibratorObj: JObject;
  Vibrator: JVibrator;
begin

  VibratorObj := SharedActivity.getSystemService(TJActivity.JavaClass.VIBRATOR_SERVICE);
  Vibrator := TJVibrator.Wrap((VibratorObj as ILocalObject).GetObjectID);
  Vibrator.vibrate(StrToInt(Edit1.Text));

end;

в Edit1.Text вставляем длительность вибрации.

1000 = 1сек.

Ссылка на комментарий
  • 0
В 25.03.2016 в 10:52, AndroidHalfNoob сказал:

и было бы неплохо оповестить пользователя вибрацией

а как программно "вибронуть", нажав на кнопку? .. нажимаю и APK закрывается, что-то надо ещё подключить?

55555555552.jpg

Ссылка на комментарий
  • 0
Только что, Andrey Efimov сказал:

Не работает с вибрацией

да, на 6-м Android работает:

procedure Vibr;
//Процедура вибрации
var
  Vibrator: JVibrator;
begin
  Vibrator := TJVibrator.Wrap(TAndroidHelper.Context.getSystemService(TJContext.JavaClass.VIBRATOR_SERVICE));
  if Vibrator.hasVibrator() then
    Vibrator.vibrate(2000);
end;

 

 

Ссылка на комментарий
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...