Articles of android intent

注册成为自定义文件types的默认应用程序

注册即可打开自定义types的文件。 假设我有.cool文件,如果用户试图打开它,Android会询问他们是否愿意使用我的应用程序打开它。 怎么样?

Android:如果从Recent Task启动应用程序,则Activity正在使用旧意图

我正在实施GCM。 我的应用程序有两个活动,比如A和B 我正在使用此代码从NotificationBar启动B : long when = System.currentTimeMillis(); NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); String title = context.getString(R.string.app_name); Notification notification = new Notification(R.drawable.app_notification_icon, “De Centrale”, when);//message Intent notificationIntent = new Intent(context, B.class); notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP); //|Intent.FLAG_ACTIVITY_REORDER_TO_FRONT PendingIntent intent = PendingIntent.getActivity(context, 0, notificationIntent, PendingIntent.FLAG_CANCEL_CURRENT); notification.setLatestEventInfo(context, title, msg, intent); notification.flags |= Notification.FLAG_AUTO_CANCEL; notificationManager.notify(0, notification); NotificationBar打开带有Intent的Activity B ,比如’B-notification-intent’,然后我使用Back按钮从B打开Activity A […]

为什么我的可搜索活动的Intent.getAction()为null?

我已经按照SearchManager文档进行了操作,但仍然无法搜索我的应用程序的某个活动。 从我的活动,出现搜索对话框,我输入查询,点击搜索,我的活动重新打开,然后我在日志中看到这个: D/SearchDialog( 584): launching Intent { act=android.intent.action.SEARCH flg=0x10000000 cmp=com.clinkybot.geodroid2/.views.Waypoints (has extras) } I/SearchDialog( 584): Starting (as ourselves) #Intent;action=android.intent.action.SEARCH;launchFlags=0x10000000;component=com.clinkybot.geodroid2/.views.Waypoints;S.user_query=sdaf;S.query=sdaf;end I/ActivityManager( 584): Starting activity: Intent { act=android.intent.action.SEARCH flg=0x10000000 cmp=com.clinkybot.geodroid2/.views.Waypoints (has extras) } D/WAYPOINTS( 1018): NI Intent { cmp=com.clinkybot.geodroid2/.views.Waypoints (has extras) } D/WAYPOINTS( 1018): NI null D/WAYPOINTS( 1018): NI false 在我看来,直到最后三行,一切都很好。 “NI”行分别是getIntent().toString(), getIntent().getAction()和getIntent().hasExtra(SearchManager.QUERY) 。 ActivityManager似乎正在以正确的操作启动我的活动。 然后当我的活动开始时,它不包含任何动作!? 我究竟做错了什么? […]

Android – 如何拦截“安装应用程序”的意图

好的,所以不能完全确定这是可能的…… 但是尝试编写一个应用程序,以便在执行以下任何活动之前运行一些代码。 1)APK从网络和市场发布安装程序下载 2)在Android市场上按下安装按钮 是否有可能拦截并提示这些事件,或谷歌是否将这些东西锁定得非常严格?

使用alwaysRetainTaskState和lauchMode保留android应用程序状态

在我的Android应用程序中,我有一个主要活动,作为我的应用程序的入口点,在我的清单文件中配置如下: 因此,对于特定用例,假设用户通过单击应用程序启动器内的图标从主屏幕启动应用程序。 启动应用程序后,用户从主活动导航到活动A,然后最终导航到活动B.此时,用户决定检查他们的Facebook,所以他们点击主页按钮将我的应用程序放在后台,然后启动Facebook应用程序。 在检查他们的Facebook之后,用户想要返回我的应用程序,所以他们按下主页键,然后从应用程序启动器启动应用程序(就像它们第一次启动时那样)。 当用户返回我的应用程序时,我希望应用程序返回到应用程序放入后台时用户所处的最后一项活动,在本例中为活动B.在清单文件中,我设置了alwaysRetainTaskState = true确保操作系统不会杀死我的应用程序的活动。 现在我的问题是:我如何得到上面描述的行为? 每当我点击我的应用程序的图标时,它总是从主要活动开始,无论如何。 我认为这是因为category.LAUNCHER属性。 我试过android:launchMode = singleTask,但它没有什么区别; 它总是从Main开始。 如果有人可以澄清意图filter,启动模式和任务,那就太棒了!

android:拍照相机没有“保存”/“删除”确认

我想在ImageView中使用显示从相机拍摄的图像 Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 到目前为止,此工作正常,但在用户使用所选的相机应用程序拍摄照片后,会出现一个对话框(可能来自应用程序),询问是否保存或删除拍摄的照片(至少在Android 2.3和4.2上使用默认的相机应用程序)。 我想跳过这个额外的对话框并直接在ImageView中显示图像(当调用onActivityResult时),因为这意味着用户需要额外的交互步骤,这是不必要的,因为他将有可能保存或删除照片。我的应用。 这可能是使用简单的ACTION_IMAGE_CAPTURE Intent还是我需要像Camera Preview和SurfaceView这样的更复杂的东西?

为什么Intent.createChooser()需要一个BroadcastReceiver以及如何实现?

从我的onOptionsItemSelected()实现中调用的以下代码段可以很好地将用户从我的应用程序传送到邮件客户端,其中包含电子邮件地址,主题和正文预填充。 我正在使用它作为让用户给我反馈的简单方法。 String uriText = “mailto:” + emailAddress + “?subject=” + subject + “&body=” + body; Intent emailIntent = new Intent(Intent.ACTION_SENDTO, Uri.parse(uriText)); startActivity(Intent.createChooser(emailIntent, “Pick an email app:”)); 当邮件应用程序打开时(在我的带有Android 4.0.4的Nexus S上),LogCat输出以下内容,我无法弄清楚原因; Google和SO搜索createChooser unregisterReceiver看起来毫无结果,我找不到很多createChooser()例子,它们也以帮助这种情况的方式调用unregisterReceiver() 。 04-08 21:26:19.094:E / ActivityThread(27894):活动com.android.internal.app.ChooserActivity泄露了最初在这里注册的IntentReceiver com.android.internal.app.ResolverActivity$1@4150aac8。 你是否错过了对unregisterReceiver()的调用? 04-08 21:26:19.094:E / ActivityThread(27894):android.app.IntentReceiverLeaked:Activity com.android.internal.app.ChooserActivity泄露了最初的IntentReceiver com.android.internal.app.ResolverActivity$1@4150aac8在这里注册。 你是否错过了对unregisterReceiver()的调用? 04-08 21:26:19.094:E / ActivityThread(27894):在android.app.LoadedApk $ ReceiverDispatcher。(LoadedApk.java:763) 这感觉就像一个Android bug,因为我自己的代码没有调用registerReceiver() ,那么为什么Android抱怨我需要调用unregisterReceiver() […]

Android4.4无法使用“vnd.android-dir / mms-sms”处理sms意图

我的应用程序有一个启动默认短信活动的按钮,它工作得非常好所有Android版本除了新的,Android 4.4(kitkat)这是代码: public void onClick(View arg0) { Intent smsIntent = new Intent(Intent.ACTION_VIEW); smsIntent.setType(“vnd.android-dir/mms-sms”); smsIntent.putExtra(“address”, member.getPhoneNumber().trim()); context.startActivity(smsIntent); } 我收到错误消息 11-08 02:08:32.815: E/AndroidRuntime(14733): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW typ=vnd.android-dir/mms-sms (has extras) } 我知道谷歌对默认的短信应用如何处理短信意图做了一些改变。 但我的应用程序不是短信应用程序,但它只具有启动默认短信应用程序与收件人号码的function。 所以请帮忙。

在Android上以编程方式发送带附件的电子邮件

我希望实现一个按钮,按下它将打开带有附件文件的默认电子邮件客户端。 我正在关注这个 ,但是我在startActivity上收到一条错误消息,说它正在期待一个活动参数,而我正在给它一个意图。 我使用的是API 21和Android Studio 1.1.0,所以它可能与链接中提供的答案中的注释有关? 这是我作为Android开发者的第四天,如果我遗漏了一些非常基本的东西,那就很抱歉。 这是我的代码: public void sendFileToEmail(File f){ String subject = “Lap times”; ArrayList attachments = new ArrayList(); attachments.add(Uri.fromFile(f)); Intent intent = new Intent(Intent.ACTION_SEND_MULTIPLE); intent.putExtra(Intent.EXTRA_SUBJECT, subject); intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, attachments); intent.setClassName(“com.android.email”, “com.android.mail.compose.ComposeActivity”); try { startActivity(intent); } catch (ActivityNotFoundException e) { e.printStackTrace(); }

通过bundle传递值并获得其他活动的价值

正如我在代码中看到的那样,我正在通过Bundle传递价值。 现在,我希望它在另一个活动onCreate() 。 我尝试了它的值,但它显示nullpointerexception。 请帮我解决问题。 Bundle bundle = new Bundle(); String url = “http://www.google.com”; bundle.putString(“url”, url); Intent myIntent = new Intent(context, NotificationService.class); myIntent.putExtras(bundle); context.startService(myIntent); 获取价值代码: if (!getIntent().getExtras().getString(“url”).contains(null)) { // Do something }