1. android 接受开机广播
Android接收开机广播,需要用到播广播接收者BroadcastReceiver组件。
具体代码:
在配置文件AndroidManifest.xml中向系统注册receiver
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
需要添加相应权限
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
在Receiver中就可以添加开机需要进行的操作
public class BootCompletedReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
}
}
2. 安卓4.0以上,如何实现接收系统广播
怎么可能不能打印LOG,如果Logcat无显示,先去device里面选中设备,再返回到Logcat界面就好了。
3. android 怎样收到系统发送的广播
要注册接受广播的处理程序, 有两种方式
在AndroidManifest.xml重注册, 比如监听系统的开机广播和屏幕解锁广播
<receiver android:name="com.bestjoy.app.common.update.BootCompletedReceiver" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.USER_PRESENT" />
</intent-filter>
</receiver>
这样, 一旦有定义的action发出来,BootCompletedReceiver的onReceive方法就会回调了,这样的监听,不需要你的app已经在运行。
2. 在程序中动态创建监听器, 比如还是解锁广播,
在Activity的onCreate()中生成一个IntentFilter对象
IntentFilter filter=new IntentFilter();
//为IntentFilter添加一个Action
filter.addAction("android.intent.action.USER_PRESENT");
bootCompletedReceiver = newUserPresentReceiver();
registerReceiver(smsReceiver, filter);
在onDestroy的时候去注册
unregisterReceiver(bootCompletedReceiver);
这样的方式只有在Activity生命周期onCreate()-onDestroy()之间有效。
对于一些特俗的系统级别的广播,即使你按照上面的任何一种方式做了, 也可能监听不到, 这是android 系统做了保护了, 网上查一下就知道了。
4. 怎么接收android 静态广播
在AndroidManifest.xml注册的方式,Android不能自动销毁广播接收器,也就是说当应用程序关闭后,广播接收器还是会接收广播,而在代码中注册广播接收器,可以让程序员手动定义销毁接收器的代码。应该根据应用程序的需求来选择实现广播机制的方法。
5. Android演示如何接收广播消息
Android下面接收广播消息比较简单,主要实现步骤如下:
在AndroidManifest.xml中添加receiver字段(里面有intent-filter过滤action);
从BroadcastReceiver扩展类,添加onReceive处理;
示例代码如下:
AndroidManifest.xml,这里演示的是监听来电事件
注意要先添加权限:
<uses-permission android:name=android.permission.READ_PHONE_STATE /
之后注册Receiver:
<receiver android:name=ReceiverBroadcast
<intent-filter
<action android:name=android.intent.action.PHONE_STATE /
</intent-filter
</receiver
ReceiverBroadcast.java代码中实现监听事件处理:
package com.freesoft.anttest;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.TelephonyManager;
import android.util.Log;
public class ReceiverBroadcast extends BroadcastReceiver {
private static String TAG=BroadcastReceiver;
public ReceiverBroadcast() {
Log.i(TAG, ReceiverBroadcast);}@Overridepublic void onReceive(Context arg0, Intent arg1) {
Log.i(TAG, onReceive);
Bundle bundle = arg1.getExtras();
6. 如何查看Android系统当前发送了什么广播
最简单的方法 打开手机 设置-程序 -系统程序-Android程序 打开以后就能看到了
7. 安卓手机FM收音机在哪可以下载到。不费流量,不联网的那种调频广播。
一般手机会内置一个FM收音的,这个和以前手机收听广播是一样的只需要插上耳机就可以,你需要安装包的话邮箱发给我,我可以把我手机里的FM收音机发给你,你从网上下载的可能是因为软件商的原因在里面绑定了广告,你可以关闭流量听广播就不费流量了,或者用安卓优化大师里的上网控制对手机内单个的软件是否允许上网对他做一个控制。
8. android怎么接收耳机插拔广播
接收耳机的广播就可以了!耳机广播为:Intent.ACTION_HEADSET_PLUG
,动态注册!
9. 如何查看Android系统当前发送了什么广播
Android接收开机广播,需要用到播广播接收者BroadcastReceiver组件。具体代码:在配置文件AndroidManifest.xml中向系统注册receiver需要添加相应权限在Receiver中就可以添加开机需要进行的操作{@OverridepublicvoidonReceive(Contextcontext,Intentintent){}}
10. 安卓broadcastreceiver怎么接收的广播
1.广播接收者(BroadcastReceiver)
广播接收者(BroadcastReceiver)继承BroadcastReceiver类接收广播意图的Java类,重写:
public void onReceive(Context context,Intent intent),其中intent可以获得传递的数据;
广播意图就是通过Context.sendBroadcast(Intent intent)或Context.sendOrderedBroadcast(Intentintent)发送的意图,通过这个语句,能够广播给所有满足条件的组件,比如intent设置了action="Receiver",则所有在AndroidManifest.xml中设置过<actionandroid:name="Receiver"/>的广播接收者都能够接收到广播;
2.广播发送者sendBroadcast()
通常广播发送方就是调用Context.sendBroadcast()的程序,通常广播发送方都是通过隐式意图发送出去;
广播发送方分为普通广播和有序广播;
同步广播:发送方发出后,几乎同时到达多个广播接收者处,某个接收者不能接收到广播后进行一番处理后传给下一个接收者,并且无法终止广播继续传播;Context.sendBroadcast(intent);
有序广播:广播接收者需要提前设置优先级,优先级高的先接收到广播,优先级数值为-1000~1000,在AndroidManifest.xml的<intent-filterandroid:priority="1">设置;比如存在3个广播接收者A、B、C、D,优先级A>B>C>D,因此A最先收到广播,当A收到广播后,可以向广播中添加一些数据给下一个接收者(intent.putExtra()),或者终止广播 abortBroadcast();Context.sendOrderedBroadcast(intent);
一、同步广播发送方核心代码
Intent intent = new Intent();
intent.setAction("Receiver");
Context.sendBroadcast(intent);
有序广播发送方核心代码:
Intent intent = new Intent();
intent.setAction("Receiver");
Context.sendOrderedBroadcast(intent,null);
二、广播接收者核心代码:
public class MyReceiver extends BroadcastReceiver{
public void onReceive(Context context, Intent intent)
{
Bundle bundle = intent.getExtras();...
}
}
三 注册该广播
AndroidManifest.xml 注册方式
<receiver android:name=".MyReceiver">
<intent-filter android:priority="1000">
<action android:name="Receiver"/>
</intent-filter>
</receiver>
Java类注册方式
publicvoid registerBoradcastReceiver()
{
IntentFilter myIntentFilter = new IntentFilter();
myIntentFilter.addAction("Receiver");
registerReceiver(广播类对象, myIntentFilter);
}
简单例子
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.Toast;
public class Test extends Activity{
private final String ACTION_NAME = "Receiver";
private Button mBtnEvent = null;
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
//注册广播
registerBoradcastReceiver();
LinearLayout mLinearLayout = new LinearLayout(this);
mBtnEvent= new Button(this);
mBtnEvent.setText("发送广播");
mLinearLayout.addView(mBtnMsgEvent);
setContentView(mLinearLayout);
mBtnEvent.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
sendTestBroadcast();
}
});
}
//发送广播
private void sendTestBroadcast()
{
Intent mIntent = new Intent(ACTION_NAME);
mIntent.putExtra("strData", "发送广播,在这里传送数据");
sendBroadcast(mIntent);
}
private BroadcastReceiver myReceiver = new BroadcastReceiver(){
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if(action.equals(ACTION_NAME)){
Toast.makeText(Test.this, "接收测试", 200);
}
}
};
//注册广播
public void registerBoradcastReceiver(){
IntentFilter myIntentFilter = new IntentFilter();
myIntentFilter.addAction(ACTION_NAME);
registerReceiver(myReceiver, myIntentFilter);
}
}