Android中 广播BroadcastReceiver

一、IP拨号器

activity_main.xml文件:

只有一个输入ip的文本框和一个保存按钮,

<LinearLayout xmlns:android=""xmlns:tools=""android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".MainActivity" ><EditTextandroid:id="@+id/et_ipnumber"android:layout_width="fill_parent"android:layout_height="wrap_content"android:hint="请输入要设置的ip号码"/><Buttonandroid:onClick="save"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="保存"/></LinearLayout>MainActivity.java

点击保存按钮后执行的程序,将输入的ip号以SharedPreferences的方式保存在本地,

package com.itheima.ipdail;import android.os.Bundle;import android.app.Activity;import android.content.SharedPreferences;import android.content.SharedPreferences.Editor;import android.view.Menu;import android.view.View;import android.widget.EditText;import android.widget.Toast;public class MainActivity extends Activity {private EditText et_ipnumber;private SharedPreferences sp;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);sp = getSharedPreferences("config", MODE_PRIVATE);et_ipnumber = (EditText) findViewById(R.id.et_ipnumber);}/*** 保存按钮对应的点击事件* @param view*/public void save(View view){String ipnumber = et_ipnumber.getText().toString().trim();Editor editor = sp.edit();editor.putString("ipnumber", ipnumber);editor.commit();Toast.makeText(this, "保存ip号码完毕", 0).show();}}OutCallReceiver.java

广播接受者,当有外拨电话到来的时候,,从本地SharedPreferences中取出IP号,然后和外拨号码拼接成新字符串显示早拨号界面上,

package com.itheima.ipdail;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.content.SharedPreferences;import android.util.Log;/** * 广播接收者,当有外拨电话到来的时候 会处理这个消息 * */public class OutCallReceiver extends BroadcastReceiver {private static final String TAG = "OutCallReceiver";private SharedPreferences sp;/** * 当广播接受者接受到广播事件的时候调用的方法 */@Overridepublic void onReceive(Context context, Intent intent) {String number = getResultData();Log.i(TAG,"有新的电话打出去了。电话号码为:"+number);sp = context.getSharedPreferences("config", Context.MODE_PRIVATE);String ipnumber = sp.getString("ipnumber", "");setResultData(ipnumber+number);}}别忘了在AndroidManifest.xml文件中添加,

<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/><!– 意图过滤器 –><receiver android:name="com.itheima.ipdail.OutCallReceiver"><intent-filter ><action android:name="android.intent.action.NEW_OUTGOING_CALL"/></intent-filter></receiver>结果:

二、短信窃听器

MainActivity.java

package com.itheima.smslistener;import android.os.Bundle;import android.app.Activity;import android.view.Menu;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);finish();}}SmsReceiver.java

5556->5554发送短信,利用广播接受者取出短信内容

package com.itheima.smslistener;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.telephony.SmsManager;import android.telephony.SmsMessage;import android.util.Log;public class SmsReceiver extends BroadcastReceiver {private static final String TAG = "SmsReceiver";@Overridepublic void onReceive(Context context, Intent intent) {Log.i(TAG,"有新的短信到来了。");Object[] objs = (Object[]) intent.getExtras().get("pdus");for(Object obj:objs){SmsMessage smsMessage = SmsMessage.createFromPdu((byte[]) obj);String sender = smsMessage.getOriginatingAddress();String body = smsMessage.getMessageBody();Log.i(TAG,"短信的发件人:"+sender);Log.i(TAG,"短信的内容:"+body);}}}

放下一处烦恼,收获一个惊喜;放下一种偏见,收获一种幸福;

Android中 广播BroadcastReceiver

相关文章:

你感兴趣的文章:

标签云: