如何更改android手机的铃声状态?
我试图在任何通话结束时使手机静音,为此我使用audiomanager对象。当我在位置1写入setRingerMode时,它工作,但在位置2它不工作。它的内部广播接收器。这是我的密码:如何更改android手机的铃声状态?,android,Android,我试图在任何通话结束时使手机静音,为此我使用audiomanager对象。当我在位置1写入setRingerMode时,它工作,但在位置2它不工作。它的内部广播接收器。这是我的密码: public void onReceive(Context context, Intent intent) { AudioManager am= (AudioManager)context.getApplicationContext().getSystemService(Conte
public void onReceive(Context context, Intent intent)
{
AudioManager am= (AudioManager)context.getApplicationContext().getSystemService(Context.AUDIO_SERVICE);
//POSITION 1 am.setRingerMode(AudioManager.RINGER_MODE_SILENT);
Bundle myBundle = intent.getExtras();
if (myBundle != null)
{
System.out.println("--------Not null-----");
try
{
if (intent.getAction().equals("android.intent.action.PHONE_STATE"))
{
String state = intent.getStringExtra(TelephonyManager.EXTRA_STATE);
if (state.equals(TelephonyManager.EXTRA_STATE_RINGING))
{
//code...
}
else if (state1.equals(TelephonyManager.EXTRA_STATE_OFFHOOK))
{
//POSITION 2
am.setRingerMode(AudioManager.RINGER_MODE_SILENT);
}
}
}
catch (Exception ex)
{ // Many things can go wrong with reflection calls
ex.printStackTrace();
}
}
}
根据android文档- 设备调用状态:摘机。至少存在一个调用是 拨号、活动或保留,并且没有电话正在响铃或等待
如果您想在通话结束后进行设置,请使用
EXTRA_STATE\u IDLE
,并且在代码中您已经在if
语句中使用了state1
变量,并且您已经声明并使用了STATE
变量 那么,当接收到调用时,使用什么offhook for.offhook,当结束调用时使用idle,为什么要使用if(intent.getAction().equals(“android.intent.action.PHONE_STATE”)?如果您已在清单中注册了广播接收器,则无需再次检查