0
私は着信を処理して取り消したり答えたりしましたが、できません。 IはXamarin:ACTION_ANSWERの対処方法
[BroadcastReceiver(Label = "Blocking Calls")]
[IntentFilter(new string[] { "android.intent.action.PHONE_STATE" })]
public class MyReceiver : Android.Content.BroadcastReceiver
{
private const string IntentAction_BlockingCalls = "android.intent.action.PHONE_STATE";
public override void OnReceive(Context context, Intent intent)
{
if (intent.Action == IntentAction_BlockingCalls)
{
// ensure there is information
if (intent.Extras != null)
{
// get the incoming call state
string state = intent.GetStringExtra(TelephonyManager.ExtraState);
// check the current state
if (state == TelephonyManager.ExtraStateRinging)
{
// read the incoming call telephone number
string telephoneNumber = intent.GetStringExtra(TelephonyManager.ExtraIncomingNumber);
Intent buttonDown = new Intent(Intent.ActionMediaButton);
buttonDown.PutExtra(Intent.ActionView, new KeyEvent(KeyEventActions.Down, Keycode.Headsethook));
context.SendBroadcast(buttonDown);
Toast.MakeText(context, telephoneNumber, ToastLength.Short).Show(); // Flag 4
// check the read telephone
if (string.IsNullOrEmpty(telephoneNumber))
telephoneNumber = string.Empty;
}
else if (state == TelephonyManager.ExtraStateOffhook)
{
// Toast.MakeText(context, "The call is answered", ToastLength.Short).Show(); // Flag 5
// incoming call answer
}
else if (state == TelephonyManager.ExtraStateIdle)
{
// Toast.MakeText(context, "The call have ended", ToastLength.Short).Show(); // Flag 6
// incoming call end
}
}
}
}
}
私は正常着信電話番号を取得するコードのその部分を使用するが、私は答えまたはit.Soを取り消すことができない、私は下にそのアクション(ActionAnswer)を使用しようとした
Intent A = new Intent(Intent.ActionAnswer);
アンドロイドデベロッパーサイトのこのスクリーンショットに表示されているように、 image 出力と入力は何もありません! どうすれば対応できますか?または私は着信コールをキャンセルするために使用できる他の方法がありますか? アドバイスありがとうございます。 ここにアンドロイドデベロッパーのリンクがあります。 https://developer.android.com/reference/android/content/Intent.html#ACTION_ANSWER
何をしようとしていますか?それは、人々に、より多くの文脈を与えるはずです。 –
何をしようとしていますか?着信を処理するために使用されるアクション。インテントアクティビティをコードで呼び出そうとしていますか? –
さて、質問の本文を修正しました。 – mostafayasin