![](/img/trans.png)
[英]Android Studio on a hardware that does not support virtualization technology
[英]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.