广播的一些基本用法
2017-02-07 22:10
316 查看
静态广播与动态广播
具体用法:在安卓软件中静态广播都可以接受发送广播的信息,动态广播软件中它后台关闭后,是不可以接受广播的消息
-------------发送广播
public class MainActivity extends AppCompatActivity {
private EditText et_main_content;
private Intent intent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et_main_content= (EditText) findViewById(R.id.et_main_content);
intent=new Intent();
//主要写广播的名字,否则不能接受广播
//设置广播的名字
intent.setAction("com.example.g0831_android20_sender.599");
}
public void send(View view){
String content=et_main_content.getText().toString();
// intent传值
intent.putExtra("con",content);
//发送广播(无序广播)
// sendBroadcast(intent);
}
}
-------------(静态广播)接收广播
先在AndroidManifest中配置
<!--配置广播接受者:
1.在清单文件中配置(静态广播)
2.使用java 代码(动态广播)
-->
<receiver android:name=".Myreceice_nian">
<intent-filter>
<action android:name="com.example.g0831_android20_sender.599"></action>
</intent-filter>
</receiver>
-----Java代码写
public class Myreceice02 extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
if("com.example.g0831_android20_sender.599".equals(intent.getAction())){
String con=intent.getStringExtra("con");
Log.i("test","i号接受者:"+con);
}
}
}
-------------(动态广播)接收广播可以用黏性广播
****也需要在 先在AndroidManifest中配置和静态广播一样
public class Myreceice_nian extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
if("com.example.g0831_android20_sender.599".equals(intent.getAction())){
String con=intent.getStringExtra("con");
Log.i("test","粘性号接受者:"+con);
}
}
}
//需要配置(动态注册广播需要onResume)
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
nian=new Myreceice_nian();
intentFilter=new IntentFilter();
intentFilter.addAction("com.example.g0831_android20_sender.599");
}
//动态注册广播需要onResume
@Override
protected void onResume() {
super.onResume();
//注册广播
registerReceiver(nian,intentFilter);
}
//注销动态广播必须写
@Override
protected void onDestroy() {
super.onDestroy();
//注销动态广播
unregisterReceiver(nian);
}
-------------------------------------------系统广播
先在AndroidManifest中配置
<!--读取电话状态权限-->
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
<receiver android:name=".MyphoneState">
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE"></action>
</intent-filter>
</receiver>
//代码
public class MyphoneState extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if("android.intent.action.PHONE_STATE".equals(intent.getAction())){
String con=intent.getStringExtra("con");
//获取电话号码
String number=intent.getStringExtra("con");
Log.i("test","电话进来了:"+con);
//获得电话状态
//电话管理者
TelephonyManager tm= (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
int state=tm.getCallState();
switch (state){
case TelephonyManager.CALL_STATE_RINGING:
Log.i("test","电话来了a");
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
Log.i("test","电话中,,,,,,,");
break;
case TelephonyManager.CALL_STATE_IDLE:
Log.i("test","电话挂了");
break;
}
}
}
}
相关文章推荐
- WEB标准开发中的一些基本用法
- WEB标准开发中的一些基本用法(连载中...)
- 管理下虚拟机如何? libvirt的一些基本用法
- ABAP 一些基本用法
- C# Winform TreeView 的一些基本用法
- javascript 一些基本用法
- 在C#应用程序中,对comboBox这个控件的一些基本用法(2009-06-10)
- MFC中CTreeCtrl类的一些基本用法
- 一些sql语句的基本用法,以前忽略了啊
- hadoop的一些基本用法
- Log4的一些基本用法
- 关于DSP的一些基本知识和用法(资料来源于合众达网页)
- 在C#应用程序中,对comboBox这个控件的一些基本用法
- 管理下虚拟机如何? libvirt的一些基本用法
- C# Winform TreeView 的一些基本用法
- 一些js基本用法
- jQuery一些基本用法
- Hibernate中的Query一些基本用法
- MongoDB基本介绍及一些用法
- MongoDB基本介绍及一些用法