Articles of android intent

testing该button将启动Robolectric的Activity

嗨,我有以下代码: @RunWith(Test9Runner.class) public class MainActivityTest { private MainActivity activity; private Button pressMeButton; @Before public void setUp() throws Exception { activity = new MainActivity(); activity.onCreate(null); pressMeButton = (Button) activity.findViewById(R.id.button1); } @Test public void shouldUpdateResultsWhenButtonIsClicked() throws Exception { pressMeButton.performClick(); ShadowActivity shadowActivity = shadowOf(activity); Intent intent = shadowActivity.getResultIntent(); System.out.print(intent.toString()); } } 但我不知道如何testing按下PressMeButton开始一个新的活动。 其实,但是,如何为这个事实写出正确的Robolectricunit testing呢?

如何在运行时获取设备高度和宽度?

我正在开发一个应用程序,我必须使我们的应用程序适合每个设备 – 平板电脑和Android手机。 现在我想在运行时获取设备的高度和宽度,并在我的代码中实现它,以便我的应用程序适用于横向和纵向。 我的XML文件是: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="2" android:orientation="vertical"> <LinearLayout android:id="@+id/linearLayout1" android:layout_height="match_parent" android:orientation="horizontal" android:layout_width="match_parent" android:layout_weight="1"> <LinearLayout android:id="@+id/linearLayout1" android:layout_height="match_parent" android:orientation="vertical" android:layout_width="match_parent" android:layout_weight="1" android:weightSum="100"> <TextView android:id="@+id/letter1" android:gravity="center" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="60"></TextView> <TextView android:id="@+id/letter2" android:gravity="center" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="20"></TextView> <TextView android:id="@+id/letter3" android:gravity="center" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="20"></TextView> </LinearLayout> <LinearLayout android:id="@+id/linearLayout1" android:layout_height="match_parent" android:gravity="center" android:orientation="horizontal" android:layout_width="match_parent" android:layout_weight="1"> <ImageView android:id="@+id/imag" […]

只有电子邮件应用程序来解决一个意图

我有一个问题..我只想要电子邮件活动解决intent ACTION.SEND,但在电子邮件旁边我也得到其他应用程序(例如TubeMate),即使我已经设置MIMEtypes为“message / rfc822”…任何想法如何我可以得到电子邮件应用程序来解决它..

完成另一项活动的活动

我想从另一个活动完成一个活动,如: 在Activity [A]中,点击button时,我正在调用Activity [B]而没有结束Activity [A]。 现在在Activity [B]中,有两个button, New和Modify 。 当用户点击修改,然后从堆栈中popup一个活动[A],并勾选所有选项。 但是当用户点击Activity [B]中的Newbutton时,我必须从堆栈中完成Activity [A],并将Activity [A]重新加载到堆栈中。 我正在尝试,但是我无法从堆栈中完成Activity [A] …我该怎么做? 我使用的代码如下: 从活动[A]: Intent GotoB = new Intent(A.this,B.class); startActivityForResult(GotoB,1); 另一种方法在同一个活动 public void onActivityResult(int requestCode, int resultCode, Intent intent) { if (requestCode == 1) { if (resultCode == 1) { Intent i = getIntent(); overridePendingTransition(0, 0); i.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); finish(); overridePendingTransition(0, 0); […]

onActivityResult对于片段

我目前有一个基本的活动是托pipe一个单一的片段。 在片段里面我有一个启动联系人select器的方法。 private void chooseContacts() { Intent pickContactIntent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI); pickContactIntent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_TYPE); startActivityForResult(pickContactIntent, PICK_CONTACT_REQUEST); } 当这个活动返回时,我应该如何捕获结果。 我曾尝试添加一个 @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); //Handle Code } 到我的基本活动和片段,但都没有触发方法。 如果可能的话,我希望有片段处理回报,以免浑浊的活动。 请让我知道在这种情况下最好的做法是什么。 更新: 如果我改变: startActivityForResult(pickContactIntent, PICK_CONTACT_REQUEST); 至 getActivity().startActivityForResult(pickContactIntent, PICK_CONTACT_REQUEST); 那么它的工作,但其他职位让我觉得这是不正确的。

“三星应用程序”是否支持URIschemeredirect到特定的应用程序?

我的一位客户热衷于在众多stream行的三星设备上推出全function应用程序的“精简版”。 这个精简版的版本将被上传到http://www.samsungapps.com ,用户将可以通过“三星应用”的应用程序下载 。 精简版版本的应用程序链接到完整的应用程序。 现在,我一直在三星的网站上search有关URIscheme的任何信息,三星应用程序可以拾取和使用它直接向用户提供完整应用程序的相关详细信息。 对于Google Play和Amazon,您都可以简单地使用特定的URIscheme和应用程序的包名称来引发意图。 例如: Google Play: marketIntent.setData(Uri.parse("market://details?id=" + FULL_VERSION_PACKAGE_NAME)); 亚马逊: marketIntent.setData(Uri.parse("http://www.amazon.com/gp/mas/dl/android?p=" + FULL_VERSION_PACKAGE_NAME)); 这是所有logging和相当简单的发现。 然而,我还没有能够弄清楚,如果三星应用程序提供了自己的URIscheme类似的行为。 我确实发布了,因为我们在这里讨论Android设备,所以我只能链接到Google Play。 对我来说,三星似乎很奇怪,如果没有能力连接到那里的特定产品,那么三星就会提供一个类似于市场的系统,所以我希望我能忽略一些东西。 有没有人有这个指针? 请注意,我没有一个与Samsung Apps兼容的设备来testing任何东西。

Android:有没有一种通用的方式发送任何Android设备上的彩信?

此代码适用于原生Android系统的普通谷歌设备。 但是在htc感应设备上没有MMS应用程序,我不知道摩托罗拉Blur等: final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND); emailIntent.setType("image/png"); emailIntent.putExtra(Intent.EXTRA_STREAM, uri); context.startActivity(Intent.createChooser(emailIntent, context.getString(R.string.send_intent_name))); 这个代码适用于HTC的感觉,但不是来自Chooser,我真正需要的是: Intent sendIntent = new Intent("android.intent.action.SEND_MSG"); sendIntent.putExtra(Intent.EXTRA_STREAM, uri); sendIntent.setType("image/png"); context.startActivity(sendIntent); 但我不知道如何将这些代码示例结合在一起,我不知道如何以编程方式确定Htc Sense ui。 支持不同types的设备是否正确? 谢谢你的答案。

如何将活动带到前台(栈顶)?

在Android中,我定义了一个活动ExampleActivity。 当我的应用程序启动时,这个A活动的一个实例被创build,说它是A 当用户点击A一个button时,B的另一个实例B被创build。 现在任务堆栈是BA,B在顶部。 然后,用户点击B上的一个button,C-Activity的另一个实例,C被创build。 现在任务堆栈是CBA,C在顶部。 现在,当用户点击C上的一个button时,我希望应用程序将A带到前台,即使A成为任务堆栈ACB的顶部。 我如何编写代码来实现它?

通过adb启动应用程序不知道活动名称

注意:这不是关于使用Android adb工具启动Android应用程序的一般问题,某些社区成员认为这是重复的。 正如下面清楚地指出的那样,我已经知道可以通过adb来实现,但是有一个限制,我们需要知道活动名称。 所以这个问题是关于如何用adb启动一个应用程序, 而不知道活动名称。 从post可以通过adbshell启动活动? ,我们可以通过adb启动一个Android应用程序 adb shell am start -n yourpackagename/.activityname 但是,是否有可能通过adb启动一个Android应用程序,而不知道活动名称? 例如,通过发送android.intent.action.MAIN意图到一个包? 也许有些命令是这样的: adb shell am start -a android.intent.action.MAIN -n packageName

我如何处理Android中的浏览器的“共享页面”的意图?

我在这里阅读( http://androidlittle.blogspot.com/2009/08/intent-filter-for-share-link.html )什么意图filter是需要处理“共享链接”的意图,Android的Web浏览器发送。 我已经把它放在我的AndroidManifest.xml中,像这样: <activity android:name=".ShareLink"> <intent-filter> <action android:name="android.intent.action.SEND" /> <category android:name="android.intent.category.DEFAULT" /> <data android:mimeType="text/plain" /> </intent-filter> <meta-data/> </activity> 我不能为了我的生活得到这个被触发。 当我在android浏览器中共享一个链接时,模拟器日志显示它正在创build一个select器意图,但是没有给出select器正在执行的意图的细节。 没有select器窗口popup,并且意图被SMS应用程序处理。 我也尝试手动启动意图: adb shell am start -D -a android.intent.action.SEND -c android.intent.category.DEFAULT -t text/plain -d http://google.com/ 但是我得到的回应是: Starting: Intent { act=android.intent.action.SEND cat=[android.intent.category.DEFAULT] dat=http://google.com/ typ=text/plain } Error: Activity not started, unable to resolve Intent { act=android.intent.action.SEND […]