首页 > 学院 > 开发设计 > 正文

*广播*

2019-11-11 01:11:40
字体:
来源:转载
供稿:网友

广播 最新接触到的一个技术,来跟大家分享一下。 广播发送者的代码:

@Override PRotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); editText = (EditText) findViewById(R.id.ed_send); intent = new Intent(); //设置广播的名字,设置action intent.setAction("com.zking.andriod20sender.955"); } public void send(View view){ String content=editText.getText().toString(); //发送广播之前先携带数据过去 intent.putExtra("data",content); //发送广播,无序 // sendBroadcast(intent); //发送黏性广播 sendStickyBroadcast(intent); }

1.广播接受者需要配置,(在清单文件里配置的是静态广播。) 先打开谁就谁先接收到。 这里写图片描述

2.动态广播(是在java代码中配置),动态广播的优先级高于静态广播的优先级。必须要写注销动态广播。 这里写图片描述

3.黏性广播,(已经过时)发送黏性广播需要配置黏性广播的权限。代码如下,

<user-permssion andriod="android_permission.BROADCAST_STICK</user-ermission >

4.系统广播,短信是有序广播,来电是无序广播。 今天要在这里讲的是来电广播。 需要加一个打电话的权限 这里写图片描述 需要获取电话管理服务,获得电话状态,获得来电电话号码。 还有来电的三种状态。 具体代码如下:

public class Myphoone extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if("android.intent.action.PHONE_STATE".equals(intent.getAction())){ //获取电话号码 String number=intent.getStringExtra("incoming_number"); Log.i("test","有电话进来了,"+number); // Toast.makeText(context, "电话进来了:"+number, Toast.LENGTH_SHORT).show(); //获取电话状态 //电话管理者 TelephonyManager tm= (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); int state=tm.getCallState(); switch (state) { case TelephonyManager.CALL_STATE_RINGING: Log.i("test","有电话"); break; case TelephonyManager.CALL_STATE_OFFHOOK: Log.i("test","通话中"); break; case TelephonyManager.CALL_STATE_IDLE: Log.i("test","挂断了"); break; } } }
上一篇:引用传递图解

下一篇:1084

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表