в моем приложении Я хочу добавить опцию: поместить телефон в бесшумный режим, когда вызывается группа конкретных номеров (я использую базу данных позже для этого, теперь попробуйте с номером)вернуться в предыдущий режим после завершения вызова в android
вот мой код:
public class PhoneCallReceiver extends BroadcastReceiver {
Context context = null;
private static final String TAG = "Phone call";
private ITelephony telephonyService;
private String silentNum="+.....";
AudioManager am,temp;
@Override
public void onReceive(Context context, Intent intent) {
Log.v(TAG, "Receving....");
TelephonyManager telephony = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
try {
am = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);
temp = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);
temp.getRingerMode();
Class c = Class.forName(telephony.getClass().getName());
Method m = c.getDeclaredMethod("getITelephony");
m.setAccessible(true);
telephonyService = (ITelephony) m.invoke(telephony);
Bundle bundle=intent.getExtras();
String phoneNumber = bundle.getString("incoming_number");
db= new dbhandler(context);
db.open();
int ch = db.checkexist("call", phoneNumber, "1");
if ((phoneNumber != null) && (ch==1)){
//telephonyService.silenceRinger();
telephonyService.endCall();
Log.e("HANG UP", phoneNumber);
}
if ((phoneNumber != null) && (phoneNumber.equals(silentNum))){
am.setRingerMode(0);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
Я также добавил BroadcastReceiver в мой манифест тоже, теперь, когда один из тех числа звонков, телефон получить на беззвучном режиме. моя проблема в том, что я не знаю, как вернуть предыдущий режим телефона, я не знаю, когда звонок завершен.
Это правильный код для возврата в предыдущий режим?
, где я должен положить его?
switch (temp.getRingerMode()) {
case AudioManager.RINGER_MODE_SILENT:
Log.i("MyApp","Silent mode");
break;
case AudioManager.RINGER_MODE_VIBRATE:
Log.i("MyApp","Vibrate mode");
break;
case AudioManager.RINGER_MODE_NORMAL:
Log.i("MyApp","Normal mode");
break;