package com.example.nhx;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.gsm.SmsMessage;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;
public class SmsReceiver extends BroadcastReceiver {
ImageView imageView1;
ImageView imageView2;
Button ON, OFF;
String msg = "";
@Override
public void onReceive(Context context, Intent intent) {
// ---get the SMS message passed in---
if (msg.contains("LED ON")) {
Toast.makeText(context, "HELLO WORLD", Toast.LENGTH_SHORT).show();
}
if (msg.contains("LED OFF")) {
Toast.makeText(context, "HELLO", Toast.LENGTH_SHORT).show();
}
if (msg == "LED ON") {
imageView1.setVisibility(imageView1.VISIBLE);
imageView2.setVisibility(imageView2.INVISIBLE);
}
if (msg == "LED OFF") {
imageView2.setVisibility(imageView2.VISIBLE);
imageView1.setVisibility(imageView1.INVISIBLE);
}
Bundle bundle = intent.getExtras();
SmsMessage[] msgs = null;
String str = "";
if (bundle != null) {
// ---retrieve the SMS message received---
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]);
// str += "SMS from " + msgs[i].getOriginatingAddress();
// str += " :";
str += msgs[i].getMessageBody().toString();
str += msg;
// str += "\n";
}
}
if (msg.contains("LED ON")) {
Toast.makeText(context, "HELLO WORLD", Toast.LENGTH_SHORT).show();
}
else {
Toast.makeText(context, "HELLO", Toast.LENGTH_SHORT).show();
}
if (msg == "LED ON") {
imageView1.setVisibility(imageView1.VISIBLE);
imageView2.setVisibility(imageView2.INVISIBLE);
}
if (msg == "LED OFF") {
imageView2.setVisibility(imageView2.VISIBLE);
imageView1.setVisibility(imageView1.INVISIBLE);
}
Toast.makeText(context, str, Toast.LENGTH_SHORT).show();
}
private void startactivity(Intent i) {
}
}
package com.example.nhx;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.gsm.SmsManager;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
public class blinkMe extends Activity {
Button ON;
Button OFF;
ImageView imageView1;
ImageView imageView2;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ON = (Button) findViewById(R.id.ON);
OFF = (Button) findViewById(R.id.OFF);
imageView1 = (ImageView) findViewById(R.id.imageView1);
imageView2 = (ImageView) findViewById(R.id.imageView2);
ON.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
sendSMS("5556", "LED ON");
OFF.setClickable(true);
imageView1.setVisibility(imageView1.VISIBLE);
imageView2.setVisibility(imageView2.INVISIBLE);
}
private void sendSMS(String phoneNumber, String message) {
// TODO Auto-generated method stub
SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(phoneNumber, null, message, null, null);
ON.setClickable(true);
}
});
OFF.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
ON.setClickable(true);
sendSMS("5554", "LED OFF");
/* Intent i = new Intent(); */
imageView2.setVisibility(imageView2.VISIBLE);
imageView1.setVisibility(imageView1.INVISIBLE);
}
private void sendSMS(String phoneNumber, String message) {
// TODO Auto-generated method stub
SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(phoneNumber, null, message, null, null);
}
});
}
}
私のアプリケーションでは、オンとオフのような 2 つのボタンと、赤と緑の色が重なり合う 2 つの画像があります。ボタンをクリックすると緑色の画像が前面に表示され、クリックすると赤色の画像が前面に表示されます。ボタンをクリックすると、事前定義された番号に 1 つのメッセージが送信されます。これは、ボタンがクリックされたときに 2 つのイベントが発生することを意味します。対応する画像スイッチ 前文 2.メッセージは事前定義された番号に送信されます
メッセージを送信した後に問題が発生します。受信者の返信がオンの場合は緑色の画像が前に来て、彼の返信がオフの場合は赤い画像が前に来るように、受信したメッセージに基づいて画像が自動的に変更されます。