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);
}
}