当电话铃响时,我设法准备了一项活动.现在我需要知道如何取消这个活动,当我打电话或拒绝电话时.我是否打电话给EXTRA_STATE_IDLE?EXTRA_STATE_OFFHOOK?
有任何想法吗?
<receiver android:name=".IncomingBroadcastReceiver">
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE"/>
</intent-filter>
</receiver>
public class IncomingBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String state = intent.getStringExtra(TelephonyManager.EXTRA_STATE);
// If an incoming call arrives
if (state.equals(TelephonyManager.EXTRA_STATE_RINGING))
{ //Did my work }
Run Code Online (Sandbox Code Playgroud) 我试图知道当被叫者举起电话时如何提醒.我已经使用PhoneStateListener 沿BroadcastReceiver.
一般来说它有三种状态CALL_STATE_IDLE , CALL_STATE_OFFHOOK, CALL_STATE_RINGING.
CALL_STATE_OFFHOOK 当呼叫连接时状态正在呼叫,在被呼叫者应答呼叫之后没有呼叫上述三种状态的状态.
这是我的BroadcastReceiver.
public class PhoneStateBroadcastReceiver extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
telephonyManager.listen(new CustomPhoneStateListener(context), PhoneStateListener.LISTEN_CALL_STATE);
}
public class CustomPhoneStateListener extends PhoneStateListener
{
Context context; //Context to make Toast if required
ActivityManager activityManager;
public CustomPhoneStateListener(Context context)
{
super();
this.context = context;
}
@Override
public void onCallStateChanged(int state, String incomingNumber)
{
super.onCallStateChanged(state, incomingNumber);
Log.v("PhoneStateBroadcastReceiver", "onCallStateChanged state"+state);
switch (state)
{
case TelephonyManager.CALL_STATE_IDLE: …Run Code Online (Sandbox Code Playgroud) 可能重复:
将音频片段播放到正在进行的通话中
假设我们在我们的手机上录制了文件,当我们打电话给任何人时,一旦他接到电话他应该听录音的语音文件,我们已经记录了我已经通过下面提到的链接仍然问题仍然存在 如何玩呼叫开始时的音频文件? http://youropensource.com/projects/532-access-the-incoming-outgoing-calls-using-TelephonyManager 我试过,但我现在没办法解决我必须做的事情?