通过ip拨号器来了解广播接收者

1、继承广播接收者类

 1 package com.example.ipdail;
 2 
 3 import android.content.BroadcastReceiver;
 4 import android.content.Context;
 5 import android.content.Intent;
 6 import android.content.SharedPreferences;
 7 
 8 public class OutCallReceiver extends BroadcastReceiver {
 9 
10     @Override
11     public void onReceive(Context context, Intent intent) {
12         // TODO Auto-generated method stub
13         //获取拨打的号码
14         String number = getResultData();
15         //获取config数据里面的数据
16         SharedPreferences sp = context.getSharedPreferences("config", context.MODE_PRIVATE);
17         String ipnumber = sp.getString("ipnumber", "");
18         
19         //修改号码并返回
20         String newNumber = ipnumber + number;
21         setResultData(newNumber);
22     }
23     
24 
25 }

2、在清单文件配置广播接收者(因为属于四大组件之一),并通过action来表名要监听的频道

1  <receiver android:name=".OutCallReceiver">
2             <intent-filter>
3                 <action android:name="android.intent.action.NEW_OUTGOING_CALL"></action>
4             </intent-filter>
5         </receiver>

3、由于要监听外拨电话,所以要加一个权限

 <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/>

 

4、其他java代码

 1 package com.example.ipdail;
 2 
 3 import android.os.Bundle;
 4 import android.app.Activity;
 5 import android.content.SharedPreferences;
 6 import android.content.SharedPreferences.Editor;
 7 import android.view.Menu;
 8 import android.view.View;
 9 import android.widget.EditText;
10 
11 public class MainActivity extends Activity {
12 
13     private EditText et_ipnumber;
14     
15     private SharedPreferences sp;
16     @Override
17     protected void onCreate(Bundle savedInstanceState) {
18         super.onCreate(savedInstanceState);
19         setContentView(R.layout.activity_main);
20         et_ipnumber = (EditText)findViewById(R.id.et_ipnumber);
21         sp = getSharedPreferences("config", MODE_PRIVATE);
22         et_ipnumber.setText(sp.getString("ipnumber", ""));
23     }
24     
25     public void click(View view){
26         String ipnumber = et_ipnumber.getText().toString().trim();
27         
28         Editor editor = sp.edit();
29         editor.putString("ipnumber", ipnumber);
30         editor.commit();
31     }
32 }

 

posted @ 2016-03-23 21:43  zhongyinghe  阅读(312)  评论(0编辑  收藏  举报