在 android 中发送消息两次而不是一次
sending message in android two times instead of once
我想在通话结束后发送短信,我的应用程序发送了短信,但问题是它在每次通话中都发送了两次,我不知道问题出在哪里(我想每次发送一条短信时间不是两次)
这是我的代码:
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>
每次 phone 状态发生变化(响铃、通话中……)时,您的 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;
}
我想在通话结束后发送短信,我的应用程序发送了短信,但问题是它在每次通话中都发送了两次,我不知道问题出在哪里(我想每次发送一条短信时间不是两次)
这是我的代码:
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>
每次 phone 状态发生变化(响铃、通话中……)时,您的 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;
}