标签:android style blog http color get
Broadcast是Android四大组件之一,是一种广泛运用的在应用程序之间传输信息的机制。最经典的举例是:
“我们拿广播电台来做个比方。我们平常使用收音机收音是这样的:许许多多不同的广播电台通过特定的频率来发送他们的内容,而我们用户只需要将频率调成和广播电台的一样就可以收听他们的内容了。Android中的广播机制就和这个差不多的道理。”
我们拿代码说话
IP拨号的实现
配置文件:
<receiver android:name="com.iidcdut.ipcall.OutCallReceiver"> <intent-filter > <action android:name="android.intent.action.NEW_OUTGOING_CALL" /> </intent-filter> </receiver>
onCreate里面主要是对SharePrefence配置,设置拨号时候要加的IP,然后BroadcastReceiver里面就是对要拨出去的号码进行加IP操作。
public class MainActivity extends Activity { private EditText edit_ipnumber; private SharedPreferences sp; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); edit_ipnumber = (EditText) findViewById(R.id.edit_ipnumber); sp = getSharedPreferences("config", MODE_PRIVATE); edit_ipnumber.setText(sp.getString("ipnumber", "")); } public void click(View view) { String ipnumber = edit_ipnumber.getText().toString(); Editor editor = sp.edit(); editor.putString("ipnumber", ipnumber); editor.commit(); Toast.makeText(this, "设置OK", Toast.LENGTH_LONG).show(); } }
广播接收:
public class OutCallReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { System.out.println("onReceive 发现新外拨电话"); String number = getResultData(); System.out.println("number="+number); SharedPreferences sp = context.getSharedPreferences("config", Context.MODE_PRIVATE); String ipnumber = sp.getString("ipnumber", ""); String newnumber = ipnumber + number; setResultData(newnumber); } }
短信拦截
像360的app里面就有垃圾短信拦截的功能,其实就是通过广播实现的。
配置文件:
<receiver android:name="com.yydcdut.smslistener.SmsReceiver"> <intent-filter > <action android:name="android.provider.Telephony.SMS_RECEIVED"/> </intent-filter> </receiver>
广播里面:
public class SmsReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { System.out.println("收到短信"); Object[] pdus = (Object[]) intent.getExtras().get("pdus"); for(Object pdu : pdus) { SmsMessage smsMessage = SmsMessage.createFromPdu((byte[]) pdu); String body = smsMessage.getMessageBody(); String sender = smsMessage.getOriginatingAddress(); System.out.println("body"+body); System.out.println("sender"+sender); abortBroadcast(); } } }
我是天王盖地虎的分割线
源代码:http://pan.baidu.com/s/1dD1Qx01
利用广播IP拨号.zip
短信窃(和谐)听(和谐)器.zip
转载请注明出处:http://www.cnblogs.com/yydcdut
Android -- Broadcast接收,布布扣,bubuko.com
标签:android style blog http color get
原文地址:http://www.cnblogs.com/yydcdut/p/3803556.html