android应用程序的四个重要的组件:(所有组件的要使用都要在androidManifest.xml中配置)
1.activity ui界面的展现
2.content provider 内容提供者 暴露自己应用私有的数据给别的应用程序
3.broadcast receiver 广播接受者.
4.service 后台服务. 长期在后台运行, 没有用户界面的一个组件.
在android系统里面有很多内置的广播事件
1. 电池电量低.
2. 短信到来了
3. 电话拨打出去了
4. sd卡被插进来了.
5. 屏幕锁屏了.
6. 手机重启了.
第一步:继承BroadcastReceiver,并重写onReceive()方法。
public class IncomingSMSReceiver extends BroadcastReceiver {
@Override public void onReceive(Context context, Intent intent) {
}
}
第二步:订阅感兴趣的广播Intent,订阅方法有两种:
第一种:使用代码进行订阅
IntentFilter filter = new IntentFilter("android.provider.Telephony.SMS_RECEIVED");
IncomingSMSReceiver receiver = new IncomingSMSReceiver();
registerReceiver(receiver, filter);
第二种:在AndroidManifest.xml文件中的<application>节点里进行订阅:
<receiver android:name=".IncomingSMSReceiver">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
</intent-filter>
</receiver>
1.activity ui界面的展现
2.content provider 内容提供者 暴露自己应用私有的数据给别的应用程序
3.broadcast receiver 广播接受者.
4.service 后台服务. 长期在后台运行, 没有用户界面的一个组件.
在android系统里面有很多内置的广播事件
1. 电池电量低.
2. 短信到来了
3. 电话拨打出去了
4. sd卡被插进来了.
5. 屏幕锁屏了.
6. 手机重启了.
广播接收者(BroadcastReceiver)用于接收广播Intent,广播Intent的发送是通过调用Context.sendBroadcast()、Context.sendOrderedBroadcast()来实现的。通常一个广播Intent可以被订阅了此Intent的多个广播接收者所接收,这个特性跟JMS中的Topic消息接收者类似。要实现一个广播接收者方法如下:
第一步:继承BroadcastReceiver,并重写onReceive()方法。
public class IncomingSMSReceiver extends BroadcastReceiver {
@Override public void onReceive(Context context, Intent intent) {
}
}
第二步:订阅感兴趣的广播Intent,订阅方法有两种:
第一种:使用代码进行订阅
IntentFilter filter = new IntentFilter("android.provider.Telephony.SMS_RECEIVED");
IncomingSMSReceiver receiver = new IncomingSMSReceiver();
registerReceiver(receiver, filter);
第二种:在AndroidManifest.xml文件中的<application>节点里进行订阅:
<receiver android:name=".IncomingSMSReceiver">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
</intent-filter>
</receiver>
----------------------------------------------------------------------------------------------
ip拨号器:
public class MainActivity extends Activity
{
private EditText et_ipnumber;
private SharedPreferences sp;
@Override
protected void onCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout. activity_main);
et_ipnumber=(EditText)
findViewById(R.id. et_ipnumber);
sp=getSharedPreferences( "config", MODE_PRIVATE);
}
/**
* 设置 ip
*/
public void click(View view){
String ipNumber= et_ipnumber.getText().toString().trim();
//将ipnumber 方法sp存储器中
Editor edit = sp.edit();
edit.putString( "ipNumber",
ipNumber);
edit.commit();
}
}
------------------------------------------------------------------------------------------
public class OutCallReceiver extends BroadcastReceiver
{
/**
* 根据AndroidManifest.xml中配置一拨打电话就调用该方法
*/
@Override
public void onReceive(Context
context, Intent intent) {
//创建sp ,拿到存储器中的数据
SharedPreferences sp=context.getSharedPreferences("config" ,context.MODE_PRIVATE);
String ipNumber = sp.getString( "ipNumber", "");
String number = getResultData(); //获取拨打的号码
setResultData(ipNumber+ number); //重新设置要拨打的电话
}
}
<!--广播接收者配置(设置广播频道) -->
<receiver android:name="com.itheima.ipdail.OutCallReceiver" >
<intent-filter >
<action android:name="android.intent.action.NEW_OUTGOING_CALL" />
</intent-filter>
</receiver>
本文介绍了Android系统中的广播接收者(BroadcastReceiver)组件及其使用方法,并详细展示了如何利用广播接收者实现来电显示前缀修改及拨号器功能。

6384

被折叠的 条评论
为什么被折叠?



