簡體   English   中英

Android是否支持檢測硬件中斷?

[英]Does Android support the detection of hardware interrupts?

假設我正在開發一個Android應用程序。 突然我將Android手機連接到計算機。 Android是否具有檢測此類硬件中斷的機制?

是的,在后台運行的linux內核可以處理中斷。

您甚至可以通過鍵入以下內容來查看它們:

cat /proc/interrupts

在adb shell中。

還有一些方法可以通過Intent和BroadcastReceivers來檢測這些類型的事物,即

http://developer.android.com/reference/android/content/Intent.html#ACTION_POWER_DISCONNECTED

如果以這種方式進行操作,則需要編寫一個擴展BroadcastReceiver的類( http://developer.android.com/reference/android/content/BroadcastReceiver.html ),並實現onReceive(),然后注冊您的接收器某個地方(即在您的Activity類中),如下所示:

MyReceiver receiver = new MyReceiver(); 
IntentFilter inf = new IntentFilter(); 
inf.addAction(Intent.ACTION_POWER_DISCONNECTED); 
this.registerReceiver(receiver , inf);

另外,您還必須將該接收器添加到您的AndroidManifest.xml中:

<application .. >
...
    <receiver android:enabled="true"
         android:exported="false"
         android:label="string resource"
         android:name=".MyReceiver"
    >
    </receiver>
</application>

然后,只要操作發生(在這種情況下,只要ACTION_POWER_DISCONNECTED發生),就應該調用onReceive()。

希望有幫助!

是的,Android操作系統始終會觀察到中斷,並且基本上對於所有系統行為和事件,android都會負責通知與該特定事件或中斷相關的用戶。

首先,中斷只是用戶的操作或系統狀態改變而已。 例如USB連接,電池電量低或任何單擊或觸摸事件等。

設備固件負責從硬件傳輸這些信號,然后I2C總線會捕獲任何類型的中斷。

然后,這些信號將由Linux內核中的設備驅動程序解碼。輸入設備驅動程序負責通過Linux輸入協議將特定於設備的信號轉換為標准輸入事件格式。

Android EventHub組件從內核讀取輸入事件。

最后,InputReader將輸入事件發送到InputDispatcher,后者將它們轉發到適當的窗口。

這絕對不是android的處理方式。 插入和拔出手機時,都有廣播供您收聽

在frameworks \\ base \\ services \\ java \\ com \\ android \\ server中查找UEventObserver.java,在frameworks \\ base \\ core \\ java \\ android \\ os中查找SystemServer.java

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM