广播的一些基本用法
来源:互联网 发布:算法设计与分析第二版 编辑:程序博客网 时间:2024/06/01 09:46
静态广播与动态广播
具体用法:在安卓软件中静态广播都可以接受发送广播的信息,动态广播软件中它后台关闭后,是不可以接受广播的消息
-------------发送广播
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>
<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;
}
}
}
}
- 广播的一些基本用法
- 广播的一些用法
- android开发-广播的基本用法
- Log4的一些基本用法
- ListBox的一些基本用法
- Hibernate的一些基本用法
- hadoop的一些基本用法
- Git 的一些基本用法
- UITableView的一些基本用法
- UIButton的一些基本用法
- #define 的一些基本用法
- intent的一些基本用法
- Thread一些基本的用法
- UIWebView 的一些基本用法
- NSUserDefaults的一些基本用法
- Jquery的一些基本用法
- path的一些基本用法
- Tensorflow的一些基本用法
- 二叉平衡树
- spring cloud-使用Hystrix实现单个方法的fallback
- Spring_20-21,切面的优先级&重用切点表达式
- C语言qsort
- scala --数组相关操作
- 广播的一些基本用法
- opencv:canny边缘检测
- opencv:打开摄像头
- 笔试题12
- C语言中Static和Const关键字的的作用
- String 和 int转换
- 蓝桥杯-第七届省赛javaA组-取球博弈
- 用Maven的resources:copy-resources自动复制资源
- Android性能优化第(十 一)篇---卡顿分析,正确评测流畅度