代码之家  ›  专栏  ›  技术社区  ›  Aryana

在android中发送消息两次而不是一次

  •  0
  • Aryana  · 技术社区  · 10 年前

    我想在通话结束后发送短信,我的应用程序会发送短信,但问题是每次通话都会发送两次,我不知道问题出在哪里(我想每次发送一条短信,而不是两次)

    这是我的代码:

    public class Receiver extends BroadcastReceiver {  
      SmsManager smsmanager=SmsManager.getDefault(); 
      public void onReceive(Context context, Intent intent) {
    
      if (phoneNumber != null){
    
         telephonyService.endCall();
         smsmanager.sendTextMessage(phoneNumber, null, "message", null, null);
    
      }
    }
    

    在清单上:

    <receiver  android:name=".Receiver">
            <intent-filter  android:priority="100" >
                <action android:name="android.intent.action.PHONE_STATE" />
            </intent-filter>
        </receiver>
    
    1 回复  |  直到 10 年前
        1
  •  0
  •   Simon Marquis    10 年前

    你的 Receiver 将在每次电话状态发生变化时被呼叫(振铃、通话中…)。
    您必须筛选相应的操作:

      // Keep track of the previous state
      String previousState;
    
      public void onReceive(Context context, Intent intent) {
        String state = intent.getStringExtra(TelephonyManager.EXTRA_STATE);
        if (CALL_STATE_IDLE.equals(state) && CALL_STATE_OFFHOOK.equals(previousState) {
          // send sms here
        }
        previousState = state;
      }