Articles of android intent

空对象引用上的Intent.migrateExtraStreamToClipData()

开始在我的应用程序的生产版本中得到这个错误。 java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.content.Intent.migrateExtraStreamToClipData()' on a null object reference 没有明确的线路,但最近我将支持库版本更改为24.0.0。 这是完整的堆栈跟踪: Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.content.Intent.migrateExtraStreamToClipData()' on a null object reference at android.app.Instrumentation.execStartActivity(Instrumentation.java:1494) at android.app.Activity.startActivityForResult(Activity.java:3745) at android.support.v4.app.BaseFragmentActivityJB.startActivityForResult(BaseFragmentActivityJB.java:48) at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:75) at android.app.Activity.startActivityForResult(Activity.java:3706) at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:871) at com.google.android.gms.common.internal.zzi$1.zztD(Unknown Source) at com.google.android.gms.common.internal.zzi.onClick(Unknown Source) at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:162) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) […]

为什么Android文档说意图额外需要包前缀

根据Android文档Intent的额外名称必须有一个包前缀。 我一直在使用Intent额外的名字没有前缀很长一段时间,似乎没有碰撞的机会,因为真正重要的是Intent行动是唯一的。 那么这些文档是错的还是我错过了什么? putExtra的文档说: 将扩展数据添加到意图。 该名称必须包含一个包前缀,例如,应用程序com.android.contacts将使用“com.android.contacts.ShowAll”之类的名称。

通过Chrome的意向传递引用数据到谷歌播放

所以我有一个移动networking,试图打开我的Android应用程序,如果它不存在,它会回落到谷歌播放。 对于铬,我使用这个意图: intent://some_data_sent_to_app#Intent;scheme=app_scheme;package=package_name;end 它工作正常,现在我想发送一些引用string谷歌播放INSTALL_REFERRER在应用程序。 我试了下面的链接,它没有发送数据到谷歌播放的问题,但它不会尝试打开应用程序 intent://some_data_sent_to_app#Intent;scheme=app_scheme;package=package_name&referrer=referrer_string;end 我不知道什么是正确的方式来打开应用程序,并退回谷歌播放引用数据被传递?

Android:networking收音机在ACTION_SHUTDOWN事件之前closures。事件顺序在ICS中更改

当用户在设备上closures电源时,我正在发送注销到我的服务器。2.3 和4.0.3中的事件顺序如下。现在注销失败。 设备: 三星Galaxy S2 Android:2.3 1)接收ACTION_SHUTDOWN 2)发送注销事件,hibernate5秒, 成功注销 3)数据networking无线closures事件。 4)设备关机。 Android:4.0.3 1)数据networking无线closures事件。 2)接收ACTION_SHUTDOWN 3)发送注销事件,注销失败当networkingclosures 。 在数据networking收音机closures之前,有什么办法可以获得ACTION_SHUTDOWN?

如何从共享菜单中排除自己的应用程序?

该应用程序有一个意图filter,允许它出现在其他应用程序的共享菜单通过ACTION_SEND意图。 该应用程序本身也有一个共享菜单使用ACTION_SEND和createChooser(),我的应用程序出现在列表中。 由于他们已经在我的应用程序,让他们能够分享回自己似乎很奇怪。 如果从应用程序调用应用程序,我的应用程序不会出现在列表中吗?

Android:检测另一个应用程序已经开始播放audio

我的音乐应用程序不断在后台播放音乐,但是我希望能够检测到另一个应用程序何时开始播放audio(如YouTube应用程序),以便我可以在应用程序中暂停/静音/停止audio。 这将允许用户在听音乐的同时继续浏览网页,但是如果他们希望在任何时候观看video,他们可以在没有audio冲突的情况下进行浏览。 一种解决scheme可能是监听广播,该广播声明应用程序何时开始使用AudioManager。 这种意图行动是否存在? 编辑:正如在下面提供的答案,似乎有一个方法来检测在2.2 AudioManager.OnAudioFocusChangeListener的audio焦点丢失。 太棒了,但有更多常见的Android版本的解决scheme吗? 理想情况下1.5+。

getExtras和getBundleExtras有什么区别?

可能有人请向我解释getExtras()和getBundleExtras()之间的区别是什么?

在我的应用程序禁用多手指触摸

我的应用程序使用一个活动来承载几个片段。 每次在手机屏幕上显示一个片段。每个片段的视图由多个图像图标组成。 目前,用户可以用两个手指同时按下两个图标(每个图标按一个图标)。 我想在我的应用上禁用此多点触控function ,以便一次只允许一个图标按下生效 。 我尝试了以下方法: 方式1:在我的应用主题中,我补充道: <item name="android:windowEnableSplitTouch">false</item> 方式2:在Android Manifest xml中,我添加了: <uses-feature android:name="android.hardware.touchscreen.multitouch" android:required="false" /> 方式三:在我的活动中: @Override public boolean onTouchEvent(MotionEvent event) { if(event.getPointerCount() > 1) { System.out.println("Multitouch detected!"); return true; } else return super.onTouchEvent(event); } 不幸的是,我的解决scheme都没有工作 那么, 如何禁用我的应用程序中的多点触控function ?

IntentSender的目的是什么?

我想知道我们的应用程序的IntentSender类的目的是什么? 我们如何在我们的应用程序中使用它? 除了基于Android Intent的API:第七部分 – IntentSenders和PendingIntents之外,还有什么好的例子吗?

最佳实践 – 将您的应用程序添加到Android共享菜单

我的应用程序通过TCP连接发送文件(所有MIMEtypes),因此我希望我的应用程序出现在Android共享菜单中。 我在AndroidManifest.xml Activity中添加了以下intentfilter <intent-filter ><!–intent filter for single file sharing–> <action android:name="android.intent.action.SEND" /> <category android:name="android.intent.category.DEFAULT" /> <data android:mimeType="*/*" /> </intent-filter> <intent-filter ><!–intent filter for sharing multiple files–> <action android:name="android.intent.action.SEND_MULTIPLE" /> <category android:name="android.intent.category.DEFAULT" /> <data android:mimeType="*/*" /> </intent-filter> 现在我将其添加到要单击“共享操作”时启动的“ Activity ” Intent intent = getIntent(); if (Intent.ACTION_SEND.equals(intent.getAction())) { Uri uri = (Uri) intent.getParcelableExtra(Intent.EXTRA_STREAM); if (uri != […]