» 首頁 » 討論區 » Android程式設計 »Intent-filter和usb問題……

Intent-filter和usb問題……

發表人: 訪客
發表時間: 2011-12-23 21:24:04
最近遇到兩個問題。

在AndroidManifest.XML裏面,intent-filter的作用,會用來設定action和category兩項,我看文章時,看到兩個屬性是用來設定
1. 程式的起始方法 (android.intent.action.MAIN),
2. 和是否出現在launcher列表內 (android.intent.category.LAUNCHER)

但當我看到有人設定兩個intent-filter時,我就完全攪不明白,這個tab真正的用途到底是甚麼了……(http://flowmind33.blogspot.com/2011/04/android-intent-filters-hook-android.html,這篇就有兩個intent-filter @_@!)

第二個問題很困難,我最近要研究,在android 2.2的系統上,不使用BatteryManager的情況下,找出可以檢測USB插頭有沒有被a/c power插著……而USM則會受到SDCARD影響,未必能檢測到USB有沒有被插著a/c……

由於UsbManager是android 2.3.4的東西,加上我找遍互聯網,居然沒有任何實例,最後我「嘗試」拿著4.0的UsbManager來用:把4.0的整個android.hardware.usb抄出來,塞進程序裏,把package名全部改掉,整個usb package在編譯時一點錯誤都沒有,然後我嘗試在main Activity中執行,卻卡在兩個問題:

1. UsbManager需要Context.USB_SERVICE,但android 2.2當然沒有這個,雖然我發現那只是個string,但我不知道強行寫進去會有甚麼影響 (或者完全沒影響,也做不到我要的效果)

2. 而Intent.action.USB_PERMISSION,就是另一個android 2.2沒有的東西,com.android.example.usb,我「估計」也是android 2.2沒有的東西。

我想問問,其實這樣把4.0的code放到2.2裏運行,可不可行?還是我只是做了個很美麗的白日夢?因為我發現,以上的東西都和Acitivity和Intent有關,如果我把這兩個class都強行塞進去,他們import的class多到足夠佔掉整個4.0系統,那樣我還不如直接叫用戶更新上4.0系統……

話說,其實能不能更新上4.0系統,是不是每部手機都可以更新上4.0,我一點都不知道啊!
發表人: Ye.Jian.Yin
積分: 6
發表時間: 2011-12-28 22:16:46
你好:
基本上來說,4.0的code放到2.2裏運行會有很多的問題
因為Android表面上是JAVA,但有些功能Call到Kernel或是其他部份時,程式就會Crash
(如果只有演算法的部份的話是ok的,但很多的API沒有那麼簡單)

另外你要找到連接電源的話
可以看看Broascast和
android.intent.action.BATTERY_CHANGED
android.intent.action.ACTION_POWER_CONNECTED
android.intent.action.ACTION_POWER_DISCONNECTED
這些Intent