2011-09-04 66 views
5

我創建了一個Android應用程序,我想在運行Android的USB項目連接到PC時自動打開。當USB項目連接到PC時註冊應用程序啓動

是否可以註冊我的應用程序來處理USB連接?我怎麼做?

+1

看到這個問題的答案:http://stackoverflow.com/questions/4600896/android-detecting-usb – Mark

+0

嘿馬克,烏拉圭回合鏈接是唯一的消息,USB連接或斷開,但我想打開我的應用程序連接後 – Angel

+0

通過啓動您的活動來回復消息... – Mark

回答

0

即使通過USB連接到PC,也可以從手機打開任何應用程序。

請訪問下面的鏈接瞭解有關檢測USB連接或分離的信息,並註冊廣播接收器,並使用適當的意圖從接收器啓動您的應用程序。

http://developer.android.com/guide/topics/usb/accessory.html

+1

我認爲他的意思是*自動*(即,通過連接電纜觸發*打開的應用程序) – aioobe

+0

他要求應用程序自動打開。 – Mark

+0

yaa右r.right意味着我的應用程序直接打開時,它連接到電纜 – Angel

4

您可以監聽Intent.ACTION_UMS_CONNECTED(USB大容量存儲模式開始)Intent.ACTION_POWER_CONNECTEDBroadcastReceiver(手機充電現在)廣播。

請注意,兩者都不會完全告訴您您已連接到計算機。當正常充電器連接時,充電廣播也可能被觸發。 USB廣播是一個很好的指標,你在電線的另一端有類似pc的東西,但不能保證。用戶也可以直接將手機連接到電腦,而無需進入大容量存儲模式。

據我所知有沒有意圖,告訴你肯定你是連接到計算機(我可以看到,它很難不會對PC的應用程序來檢測)。您可能想要閱讀intent class documentation並查看是否可以找到我還沒有看到的廣播。

+0

雅我已經使用此代碼之前,但它只是檢測到USB連接..但我怎樣才能看到我的應用程序。 – Angel

+0

從'BroadcastReceivers'' onReceive()'方法啓動'Intent'。 – 2011-09-04 19:33:28

4

在你的Manifest.xml,補充一點:

<receiver android:name=".BattStatusShow"> 
    <intent-filter> 
     <action android:name="android.intent.action.ums_connected" /> 
    </intent-filter> 
</receiver> 

然後讓你的電池狀態類擴展BroadcastReceiver,因爲您的註冊它在清單文件USB消息。

public class BattStatusShow extends BroadcastReceiver{ 
    if (intent.getAction().equalsIgnoreCase("android.intent.action.UMS_CONNECTED")) { 
    //do stuff here, like signal the view of your app it needs to do something 
    } 
} 

你不給什麼你的應用程序多的信息,但如果只有一塊電池顯示應用,編程PC主機應用程序來談談你的Android應用似乎矯枉過正。如果你想做更多的事,看看諾基亞PC站應用程序如何與諾基亞互動並模擬行爲。

+0

,但是這隻會顯示我唯一的meassage。如何看到這個動畫tomcat誰說「你的電池狀態是..%」它的音頻應用程序。 – Angel

+0

你需要用一行代碼來替代你的應用程序的主要活動中的一行。 – Kheldar

相關問題