2011-09-04 48 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

相关问题