當前位置:首頁 » 安卓系統 » android60廣播

android60廣播

發布時間: 2022-07-17 04:27:08

A. android 6.0為什麼接收不到簡訊廣播

若手機無法接收簡訊,建議:
1.撥打電話嘗試,排除是否為手機欠費導致。
2.查看是否所有簡訊均無法接收。若是個別或部分號碼無法接收,請檢查是否設置攔截信息功能(如簡訊黑名單)。
3.若提示內存已滿,請優化手機內存(如:刪除部分簡訊信息)。
4.若無效,請關機將SIM卡取出重新插入嘗試。
5.更新手機系統版本:設置-(關於手機/系統更新)-手動下載更新/自動下載更新(軟體更新/系統更新-更新)。註:升級前請備份設備中數據。
6.若已是最新版本,請備份手機中數據然後恢復出廠設置嘗試。
若問題依然存在,請您攜帶購機發票、包修卡和機器送到三星服務中心,由專業的售後工程師幫助檢測。

B. android 如何自定義常駐廣播

Android廣播機制指的是,在一個應用程序運行的時候可以自定義一個消息類型,讓相應的接收器去處理這個消息或者是系統消息,比如來電話了、來簡訊了、手機沒電了等等系統發送的消息。系統發送的消息也可以通過廣播的方式通知給應用程序,這樣子就避免了新開一個Thread去監聽系統或其他應用發送過來的消息的狀態。

Android廣播的分類:
1、 普通廣播:這種廣播可以依次傳遞給各個處理器去處理
2、 有序廣播:這種廣播在處理器端的處理順序是按照處理器的不同優先順序來區分的,高優先順序的處理器會優先截獲這個消息,並且可以將這個消息刪除
3、 粘性消息:粘性消息在發送後就一直存在於系統的消息容器裡面,等待對應的處理器去處理,如果暫時沒有處理器處理這個消息則一直在消息容器裡面處於等待狀態。
注意:普通廣播和粘性消息不同被截獲,而有序廣播是可以被截獲的

處理器的注冊:
1、 在代碼中用函數代碼動態的方式注冊。動態注冊的處理器必須用代碼動態的銷毀,每次用來處理消息的就一個實例對象
2、 在配置文件裡面靜態注冊,靜態注冊有個特點,那就是一旦注冊就會一直存在於系統裡面,無論應用是否關閉或開關機。(簡直就是一個流氓軟體病毒啊~)。靜態注冊每次有處理消息就由系統new一個處理器處理,並銷毀
下面具體看看Android廣播消息的發送、注冊、處理過程:
① 自定義處理器類:

public class MyBroadcastReceiver4 extends BroadcastReceiver {
public MyBroadcastReceiver4() {
System.out.println("創建了一個由registerReceiver()注冊的廣播接收器");
}

@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
System.out.println("MyBroadcastReceiver4收到了一個" + action + "消息");
if (isOrderedBroadcast()) {
System.out.println("這是一個有序廣播,已經被攔截了。");
this.abortBroadcast();
} else {
System.out.println("這不是一個有序廣播");
}

Bundle bundle = intent.getExtras();
if (bundle != null) {
System.out.println("該消息攜帶的數據如下:");
// 獲得bundle的一個key的集合
Set set = bundle.keySet();
// 獲得上述集合的迭代器
Iterator iterator = set.iterator();
// 用迭代器遍歷集合
while (iterator.hasNext()) {
// 取得集合中的一個內容
String str = (String) iterator.next();
// 取得Bundle中的內容
System.out.println(str + "--->" + bundle.get(str));
}
} else {
System.out.println("該消息沒有攜帶數據");
}

Toast toast = Toast.makeText(context, "MyBroadcastReceiver4收到了一個"
+ action + "消息", Toast.LENGTH_LONG);
toast.show();
//將這個消息截獲(從消息容器移除)這樣其他處理器就沒法接收到這個消息
this.abortBroadcast();
}
}

② 發送廣播消息

⑴、 發送普通廣播:
// 發送一個普通消息
Intent intent = new Intent(); intent.setAction("asdfasdf");
Android_09_10Activity.this.sendBroadcast(intent);

⑵、 發送有序廣播:
// 發送一個有序消息
Intent intent = new Intent();
intent.setAction("asdfasdf"); Android_09_10Activity.this.sendOrderedBroadcast(intent,
null);
⑶、 發送粘性廣播:
// 發送一個粘性消息
Intent intent = new Intent();
intent.setAction("qwerqwer"); Android_09_10Activity.this.sendStickyBroadcast(intent);
③ 注冊廣播接收器
⑴動態注冊:
// 注冊一個廣播接收器
IntentFilter intentFilter = new IntentFilter("asdfasdf");
intentFilter.setPriority(0);
Android_09_10Activity.this.registerReceiver(mbr2,
intentFilter);
⑵靜態注冊:

<receiver android:name=".MyBroadcastReceiver4" >

<intent-filter android:priority="1000" >

<action android:name="android.intent.action.WALLPAPER_CHANGED" />

<action android:name="android.provider.Telephony.SMS_RECEIVED" />

<action android:name="android.intent.action.PHONE_STATE" />

<action android:name="android.intent.action.PACKAGE_REMOVED" />

//這一句比較特殊,是上面那個廣播消息特有的

<data android:scheme="package" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>

想發送粘性消息的時候必須在配置文件裡面獲取許可權:
<uses-permission android:name="android.permission.BROADCAST_STICKY" />

想用自定義處理器對系統廣播進行處理的話也必須在注冊文件裡面申明獲取許可權,比如:
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />

C. android 廣播傳值

intent.putExtras(intent); 這條語句不是很矛盾嗎? 去掉這條語句就可以了
startService(intent);這個時候已經把intent傳遞給service了
你看一下service里的onStart 方法,不是傳遞了一個intent嗎
請採納哈.

D. Android開發中廣播的作用及注冊方式,

廣播是一種運用的在應用程序之間傳輸信息的機制。而BroadcastReceiver 是對發送出來的Broadcast進行過濾接受並響應的一類組件。廣播既可以在清單文件AndroidManifest.xml 中注冊,也可以在運行時的代碼中使用Context.registerReceiver()進行注冊。只要是注冊了,當事件來臨的時候,即使程序沒有啟動,系統也在需要的時候啟動程序。

E. android中的廣播是什麼意思

android的廣播概念和我們日常生活中的電台有相通之處,空氣中有不同頻段,不同電台的廣播,而android系統中就有對應的電池的電量,來電,簡訊還有例如sd卡拔插等等這些廣播的消息發出,這些消息就對應著用收音機調頻時,不同電台的節目。而我們注冊的廣播就類似於我收聽某個電台的節目,比如一個注冊廣播收聽交通廣播,另一個注冊的廣播收聽音樂廣播,那麼怎麼區分是交通廣播還是音樂廣播呢,這就要通過前一章提到的Intent的action來判斷。

F. android系統下怎麼廣播鍵盤的輸入消息

1.在lichee/linux-3.0/include/linux/input.h文件可以查看底層驅動的按鍵編碼
#define KEY_F1 59
#define KEY_F2 60
#define KEY_F3 61
#define KEY_F4 62
#define KEY_F5 63
#define KEY_F6 64
#define KEY_F7 65
#define KEY_F8 66
#define KEY_F9 67
#define KEY_F10 68
2.在android4.0/frameworks/base/core/java/android/view/KeyEvent.java文件可以查看上層驅動的按鍵編碼
/** Key code constant: F1 key. */
public static final int KEYCODE_F1 = 131;
/** Key code constant: F2 key. */
public static final int KEYCODE_F2 = 132;
/** Key code constant: F3 key. */
public static final int KEYCODE_F3 = 133;
/** Key code constant: F4 key. */
public static final int KEYCODE_F4 = 134;
/** Key code constant: F5 key. */
public static final int KEYCODE_F5 = 135;
/** Key code constant: F6 key. */
public static final int KEYCODE_F6 = 136;
/** Key code constant: F7 key. */
public static final int KEYCODE_F7 = 137;
/** Key code constant: F8 key. */
public static final int KEYCODE_F8 = 138;
/** Key code constant: F9 key. */
public static final int KEYCODE_F9 = 139;
/** Key code constant: F10 key. */
public static final int KEYCODE_F10 = 140;
3.在/android4.0/frameworks/base/data/keyboards/Generic.kl文件裡面有底層到上層的映射,將這個文件定製到自己的系統android4.0/out/target/proct/crane-m1003h6/system/usr/keylayout目錄下就可以了在上層收到USB鍵盤F1-F10的消息了。
key 59 F1
key 60 F2
key 61 F3
key 62 F4
key 63 F5
key 64 F6
key 65 F7
key 66 F8
key 67 F9
key 68 F10
4.在/android4.0/frameworks/base/policy/src/com/android/internal/policy/impl/PhoneWindow.java文件的onKeyDown,onKeyUp函數截獲F1-F10的消息,用自己定義的廣播消息廣播出去應用就可以在後台或者前台都可以接收到按鍵按下或者釋放的廣播消息了。
case KeyEvent.KEYCODE_F1: {
//Log.e("zkliu","---------------------------test F1---------------------------");
getContext().sendBroadcast(new Intent("com.android.action.F1_KEYDOWN"));
return true;
}

case KeyEvent.KEYCODE_F2: {
//Log.e("zkliu","---------------------------test F2---------------------------");
getContext().sendBroadcast(new Intent("com.android.action.F2_KEYDOWN"));
return true;
}

case KeyEvent.KEYCODE_F3: {
//Log.e("zkliu","---------------------------test F3---------------------------");
getContext().sendBroadcast(new Intent("com.android.action.F3_KEYDOWN"));
return true;
}

case KeyEvent.KEYCODE_F4: {
//Log.e("zkliu","---------------------------test F4---------------------------");
getContext().sendBroadcast(new Intent("com.android.action.F4_KEYDOWN"));
return true;
}

case KeyEvent.KEYCODE_F5: {
//Log.e("zkliu","---------------------------test F5---------------------------");
getContext().sendBroadcast(new Intent("com.android.action.F5_KEYDOWN"));
return true;
}

case KeyEvent.KEYCODE_F6: {
//Log.e("zkliu","---------------------------test F6---------------------------");
getContext().sendBroadcast(new Intent("com.android.action.F6_KEYDOWN"));
return true;
}

case KeyEvent.KEYCODE_F7: {
//Log.e("zkliu","---------------------------test F7---------------------------");
getContext().sendBroadcast(new Intent("com.android.action.F7_KEYDOWN"));
return true;
}

case KeyEvent.KEYCODE_F8: {
//Log.e("zkliu","---------------------------test F8---------------------------");
getContext().sendBroadcast(new Intent("com.android.action.F8_KEYDOWN"));
return true;
}

case KeyEvent.KEYCODE_F9: {
//Log.e("zkliu","---------------------------test F9---------------------------");
getContext().sendBroadcast(new Intent("com.android.action.F9_KEYDOWN"));
return true;
}

case KeyEvent.KEYCODE_F10: {
//Log.e("zkliu","---------------------------test F10---------------------------");
getContext().sendBroadcast(new Intent("com.android.action.F10_KEYDOWN"));
return true;
}

case KeyEvent.KEYCODE_F1: {
//Log.e("zkliu","---------------------------test F1---------------------------");
getContext().sendBroadcast(new Intent("com.android.action.F1_KEYUP"));
return true;
}

case KeyEvent.KEYCODE_F2: {
//Log.e("zkliu","---------------------------test F2---------------------------");
getContext().sendBroadcast(new Intent("com.android.action.F2_KEYUP"));
return true;
}

case KeyEvent.KEYCODE_F3: {
//Log.e("zkliu","---------------------------test F3---------------------------");
getContext().sendBroadcast(new Intent("com.android.action.F3_KEYUP"));
return true;
}

case KeyEvent.KEYCODE_F4: {
//Log.e("zkliu","---------------------------test F4---------------------------");
getContext().sendBroadcast(new Intent("com.android.action.F4_KEYUP"));
return true;
}

case KeyEvent.KEYCODE_F5: {
//Log.e("zkliu","---------------------------test F5---------------------------");
getContext().sendBroadcast(new Intent("com.android.action.F5_KEYUP"));
return true;
}

case KeyEvent.KEYCODE_F6: {
//Log.e("zkliu","---------------------------test F6---------------------------");
getContext().sendBroadcast(new Intent("com.android.action.F6_KEYUP"));
return true;
}

case KeyEvent.KEYCODE_F7: {
//Log.e("zkliu","---------------------------test F7---------------------------");
getContext().sendBroadcast(new Intent("com.android.action.F7_KEYUP"));
return true;
}

case KeyEvent.KEYCODE_F8: {
//Log.e("zkliu","---------------------------test F8---------------------------");
getContext().sendBroadcast(new Intent("com.android.action.F8_KEYUP"));
return true;
}

case KeyEvent.KEYCODE_F9: {
//Log.e("zkliu","---------------------------test F9---------------------------");
getContext().sendBroadcast(new Intent("com.android.action.F9_KEYUP"));
return true;
}

case KeyEvent.KEYCODE_F10: {
//Log.e("zkliu","---------------------------test F10---------------------------");
getContext().sendBroadcast(new Intent("com.android.action.F10_KEYUP"));
return true;
}
應用程序注冊接收相應的廣播消息即可接收到鍵盤輸入消息。

G. android 的廣播有幾種類型分別如何使用

我剛才幫你查詢了這個,一共分為六類的,直接打開就行了。

H. android的廣播和service有什麼區別啊

廣播的周期很短,你不能在廣播內做耗時操作,而服務卻能。廣播的作用是幫你傳遞一些通知,例如你寫了一個開機廣播,一旦手機開機,廣播就發一則通知告訴手機(你寫的程序),手機(你寫的程序,某個類,某句代碼)啟動服務,這個時候在服務裡面可以做你想做的耗時操作,例如去請求伺服器,載入數據。廣播和服務的區別就是廣播周期短,不能做耗時操作,服務是長時間連接,可以做耗時操作,例如用服務控制音樂的播放等。廣播需要注冊,有兩種方式,一個在配置文件裡面,一個是代碼注冊、服務是寫一個類繼承服務,然後在裡面寫你的操作,外圍實例化服務,去啟動服務。

I. 簡述在android中如何發送廣播消息

1.發送廣播
Intent intent = new Intent(BroadcastAction);
Bundle bundle = new Bundle();
bundle.putString("***", SUCCESS);
bundle.putString("FullPathName", mFullPathName);
intent.putExtras(bundle);
sendBroadcast(intent);
2.在Activity中創建一個內部類MyBroadcastReceiver擴展BroadcastReceiver,並在其中實現onReceive方法。
3.在Activity中聲明一個MyBroadcastReceiver類型的成員變數,並注冊:
private MyBroadcastReceiver myBroadcastReceiver;
...
myBroadcastReceiver = new MyBroadcastReceiver();
IntentFilter filter = new IntentFilter();
filter.addAction(BroadcastAction);
registerReceiver(receiver, filter);
4.使用完後要記得釋放
unregisterReceiver(receiver);

註:1和2中的 BroadcastAction要是同一個Action

J. android 什麼時候用到廣播

1.正常情況下我們選擇handler消息機制來進行單向的線程間的通信;(工作線程向主線程發送消息)

因為主線程有現成的handler,而工作線程沒有現成的handler,這樣的話,主線程將handler交給工作線程而讓工作線程將工作的結果交給主線程;

相反,工作線程中沒有現成的handler(事實上是沒有消息隊列,也就是handler沒有綁定到工作線程),那麼,如果開辟的話,代碼角度上是挺麻煩的(相對應廣播機制來說);

2.廣播機制本身就是雙向的(工作線程向主線程發送廣播,主線程向工作線程發送廣播);

另外,對於像一個activity中通過fragment來進行界面的處理; 我們大多數情況下是採用廣播的機制來實現fragment中adapter的數據的更新;這樣做主要是考慮到工作線程的任務載入完成,而具體的對應刷新的activity可能還沒有啟動;

另外,基於介面隔離原則,如果用handler進行通信的話,則不能很好的滿足這一原則

熱點內容
伺服器e3與e5有什麼區別 發布:2025-01-24 06:19:35 瀏覽:122
linuxdb2建資料庫 發布:2025-01-24 06:19:09 瀏覽:665
武漢長江存儲公司有多少人 發布:2025-01-24 06:09:03 瀏覽:413
ftp伺服器輸入密碼 發布:2025-01-24 05:27:41 瀏覽:210
電信帳號怎麼改密碼 發布:2025-01-24 05:11:22 瀏覽:847
筆記本x17配置怎麼選 發布:2025-01-24 05:05:53 瀏覽:8
python如何封裝 發布:2025-01-24 05:05:46 瀏覽:844
csgo怎麼連接伺服器 發布:2025-01-24 05:05:45 瀏覽:323
408哪個配置合適 發布:2025-01-24 05:01:54 瀏覽:883
oraclesql刪除重復 發布:2025-01-24 05:01:12 瀏覽:409