由于模拟器只包含很少的应用,可能只有一个处理某个动作的应用。为了更好地测试我们的应用,需要在一个真实的设备上运行这个应用。
可以按一下步骤在一个真实设备上运行你的应用。
1、启动设备上的USB调试选项
在你的安卓设备上,打开开发者选项。一般情况下,要启用这个选项,进入设置,打开关于手机,连续点击7次构建版本号(不同手机略有不同),再返回上一级,就能看到开发者选项。在开发者选项中勾选USB调试即可。
2、设置系统检测设备
如果你使用mac设备可以跳过。
如果你使用windows,需要安装一个USB驱动程序,可以从以下地址找到最新的安装说明,http://developer.android.com/tools/extras/oem-usb.html
如果使用Linux,则需要创建一个udev规则文件。可以在以下地址找到创建规则文件的最新说明:
http://developer.android.com/tools/device.html#setting-up
3、用USB线将设备与计算机相连
4、选择run app时选择你的真实设备就🆗了
可以看到运行之前的My Messenger应用时,Android会显示一个选择器,让你选择想要使用哪一个,它还会问你这个活动只使用一次还是总使用这个活动。如果你选择总是使用这个活动,以后就会默认使用这一应用。
如果总是想让用户选择活动
如果设备上有多个活动都能接收意图,Android会自动让你选择想要使用哪个活动。它甚至还会问你总是使用这个活动还是只使用这一次。这一默认行为存在一个问题:如果你想确保用户每次单机Send Message按钮时都能选择活动,该怎么做?
可以创建一个选择器来选择活动,但是不提供”总是选择这个活动“的选项。
Intent.createChooser()显示一个选择器对话框,这个方法将你创建的意图包装在一个包装器对话框中。使用这个方法时,不会为用户提供选项来选择默认活动,而是每次都要求选择一个活动。使用语法如下:
Intent chosenIntent = Intent.createChooser(intent, "Send message via...");
两个参数分别是一个意图和选择器对话框窗口的一个字符串标题(可选的)。
要启动用户选择的活动,需要调用以下方法:
startActivity(chosenIntent);
调用createChooser()时发生了什么
1、调用createChooser()方法。这个方法包括一个意图,指定了动作和所需的MIME类型。
2、Android查看意图过滤器,检查哪些活动能接收这个意图。它会根据动作、数据类型和支持的类别来进行匹配。
3、如果有多个活动都能接收这个意图,Android会显示一个活动选择器对话框,询问用户要使用哪一个活动。
4、用户选择想使用的活动,Android会返回一个新的显式意图,描述所选择的这个活动。
5、这个活动让Android启动意图中指定的活动
6、Android要求启动意图中指定的活动,然后把意图传递给这个活动。