310-接收訊息自動撥出電話(行動裝置進階應用)

1. AndroidManifest.xml
  • 重點程式碼
 <receiver android:name="Receiver" >
            <intent-filter>
                <action android:name="android.provider.Telephony.SMS_RECEIVED" />
            </intent-filter>
 </receiver>  
 <uses-permission android:name="android.permission.RECEIVE_SMS" />
 <uses-permission android:name="android.permission.CALL_PHONE" />
2. Receiver.java

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;

public class Receiver extends BroadcastReceiver {

    private static final String mACTION = "android.provider.Telephony.SMS_RECEIVED";
    private Context myContext;
    private String LOGTAG = "Receiver";

    @Override
    public void onReceive(Context context, Intent intent) {
        myContext = context;
        if (intent.getAction().equals(mACTION)) {

            Intent i = new Intent(myContext, GAD03.class);
            // bundle
            Bundle bundle = new Bundle();
            bundle.putString("text", "求救訊息");
            i.putExtras(bundle);
            i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            myContext.startActivity(i);
            Log.d(LOGTAG, "###START###");
            CallOut();

        }

    }

    private void CallOut() {
        Intent i = new Intent(Intent.ACTION_CALL, Uri.parse("tel:112"));
        i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        myContext.startActivity(i);
    }
}


3. GAD03.java

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class GAD03 extends Activity {
    private TextView TextView01;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        TextView01 = (TextView) findViewById(R.id.TextView01);
        Bundle bundle = this.getIntent().getExtras();
        if (bundle != null) {
            String text = bundle.getString("text");
            TextView01.setText(text);
        } else {
            this.finish();
        }
    }
}