Tôi có hai ứng dụng với hai phát sóng sms dữ liệu khác nhau và tôi muốn nhận sms dữ liệu trong cả hai. Cho rằng tôi đã tạo ra phát sóng trong mỗi ứng dụngLàm thế nào để nhận dữ liệu sms ở hai cổng khác nhau
Receiver một trong ứng dụng 1:
<receiver android:name=".SMSReceiver" >
<intent-filter android:priority="10" >
<action android:name="android.intent.action.DATA_SMS_RECEIVED" />
<data android:scheme="sms" />
<data android:port="5555" />
</intent-filter>
</receiver>
Receiver hai trong ứng dụng hai:
<receiver android:name=".SMSReceiver1" >
<intent-filter android:priority="10" >
<action android:name="android.intent.action.DATA_SMS_RECEIVED" />
<data android:scheme="sms" />
<data android:port="8901" />
</intent-filter>
</receiver>
Bây giờ kịch bản là thế này, sms chỉ nhận được trong đầu tiên cài đặt ứng dụng, tôi đã thử với cùng một cổng, tên lớp và cũng với khác nhau. Nhưng vấn đề không được giải quyết, Làm thế nào tôi có thể giải quyết nó ?? Đây là phát sóng tôi nhận lớp
public class SMSReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Bundle myBundle = intent.getExtras();
SmsMessage[] messages = null;
String strMessage = "";
byte[] data = null;
if (myBundle != null) {
Object[] pdus = (Object[]) myBundle.get("pdus");
messages = new SmsMessage[pdus.length];
for (int i = 0; i < messages.length; i++) {
messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
phoneNo = messages[i].getOriginatingAddress();
try {
data = messages[i].getUserData();
} catch (Exception e) {
}
if (data != null) {
for (int index = 0; index < data.length; ++index) {
strMessage += Character.toString((char) data[index]);
}
}
}
message = strMessage;
System.out.println("message received: " + message);
}
}
và mã của tôi cho gửi tin nhắn
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendDataMessage(myNumber, null,(short)8901, sms.getBytes(), null, null);
Đây là một chủ đề cũ nhưng con có một câu hỏi liên quan đến sms dữ liệu. Bạn có thể cho tôi biết chính xác chúng là gì và chúng có thể bị chặn bởi tường lửa vì các cổng được xem xét không? – user1437328