でSMSを返信私は現在、私は自動onReceive
public class IncomingSMSReceiver extends BroadcastReceiver {
private String senderNumber;
@Override
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
SmsMessage[] msgs = null;
String message = "";
if (bundle != null) {
Object[] pdus = (Object[]) bundle.get("pdus");
msgs = new SmsMessage[pdus.length];
for (int i = 0; i < msgs.length; i++) {
msgs[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
message = msgs[i].getMessageBody();
senderNumber = msgs[i].getOriginatingAddress();
}
senderNumber = msgs[0].getOriginatingAddress();
Toast.makeText(context, message, Toast.LENGTH_LONG).show();
sendMessage(senderNumber, "Thank you for sending me a message");
}
}
OnReceiveである使用する方法を持っていると私は、このクラスでは、このメソッドを使用したいが、私は、括弧内に何を入れて確認していませんメソッドを呼び出すとき。
public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {
private GoogleMap mMap;
IncomingSMSReceiver receiver = new IncomingSMSReceiver();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
receiver.onReceive();
誰かが私にonReceive()括弧に入れるべきことを教えてくれますか?
EDIT
私はあなたが言った、私のコードを変更するもの、私はまたActivityMapsでonReceiveを呼び出していませんでしたでした。だからここに私のコードですが、 "更新" SMSが私に送られるとき、それはまだ "テスト" SMSで返事をしません。
public class IncomingSMSReceiver extends BroadcastReceiver {
private static final String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED";
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(SMS_RECEIVED)) {
Bundle bundle = intent.getExtras();
if (bundle != null) {
Object[] pdus = (Object[]) bundle.get("pdus");
if (pdus.length == 0) {
return;
}
SmsMessage[] messages = new SmsMessage[pdus.length];
StringBuilder sb = new StringBuilder();
for (int i = 0; i < pdus.length; i++) {
messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
sb.append(messages[i].getMessageBody());
}
String sender = messages[0].getOriginatingAddress();
String message = sb.toString();
String txtSMS="Testing";
if (message.startsWith("UPDATE"))
{
Toast.makeText(context, message, Toast.LENGTH_SHORT).show();
this.abortBroadcast();
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(sender, null, txtSMS, null, null);
}
}
}
}
私のマニフェストファイル
receiver android:name=".IncomingSMSReceiver">
<intent-filter android:priority="1000">
<action android:name="android.intent.action.PHONE_STATE" />
<action android:name="PACKAGE_NAME.android.action.broadcast"/>
<action android:name="android.provider.Telephony.SMS_RECEIVED"></action>
</intent-filter>
あなたは通常、直接 'BroadcastReceiver'の' onReceive() 'メソッドを呼び出すことはありません、あなたは確かにSMSでそれをしたくありません。あなたは何をしようとしていますか?入ってくるメッセージをキャッチしたいだけですか? –
特定のフレーズが別のSMSと言われたときに私のアプリが返信するようにしたい –
何か間違っていますか?簡単な質問をしているだけで、なぜ人々は下降していますか? –