Articles of android intent

使用Intent.ACTION_GET_CONTENTselect多个文件

我想用一个意图select多个文件,但似乎我缺less的东西。 我创build了一个Intent.ACTION_GET_CONTENT意图,把Intent.EXTRA_ALLOW_MULTIPLE作为额外的 (它似乎完全符合目的)并创build一个select器(可选),它select应该能够select多个文件并返回它们的应用程序。 问题是我只能select一个文件。 我尝试了多个文件探索器。 这是API 18(4.3)。 ACTIVITY_CHOOSE_FILE = 1; //global constant Button btn = (Button) this.findViewById(R.id.btnGetFiles); btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent chooseFile; Intent intent; chooseFile = new Intent(Intent.ACTION_GET_CONTENT); chooseFile.setType("file/*"); chooseFile.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true); intent = Intent.createChooser(chooseFile, "Choose a file"); startActivityForResult(intent, ACTIVITY_CHOOSE_FILE); } }); 我也将其添加到清单(添加它之前它具有相同的function): <intent-filter> <action android:name="android.intent.action.GET_CONTENT" /> <category android:name="android.intent.category.DEFAULT" /> […]

select一个目录/文件使用Intent.ACTION_CREATE_DOCUMENT(存储访问框架)

如这里所解释的: http://www.doubleencore.com/2014/03/android-external-storage/ 或在这里: http://www.androidpolice.com/2014/02/17/external-blues-google-has-brought-big-changes-to-sd-cards-in-kitkat-and-even-samsung-may-be-实施-他们/ KitKat正在限制写入到次要外部存储到包特定的目录(尽pipe一些开发人员已经find解决方法了…)。 随着三星使用SD卡作为辅助外部存储和推出它的4.4.2更新这已成为许多应用程序的主要问题。 我的应用程序有一个保存function,允许用户select一个任意目录来保存文件。 我使用Intent类似org.openintents.action.PICK_DIRECTORY,com.estrongs.action.PICK_DIRECTORY或我的集成文件浏览器来select一个目录。 用户当然也可以自由selectSD卡上的任何path,但是由于KitKat的新的限制,如果目录是一个我的应用程序没有写访问权限,实际的存储操作失败。 我需要另一种方法来selectKitKat上的目录,以便用户在尝试保存到SD卡时不会收到错误消息。 这可以通过让他们只select应用程序具有写入权限的目录来实现。 我试图像这样使用Intent.ACTION_CREATE_DOCUMENT: Intent intent = new Intent(Intent.ACTION_CREATE_DOCUMENT) .addCategory(Intent.CATEGORY_OPENABLE) .setType(attachment.getContentType()) .putExtra(Intent.EXTRA_TITLE, attachment.getName()); startActivityForResult(intent, RequestCodes.MSG_CHOOSE_DIRECTORY); 这工作正常,我可以写入用户select的文件,但我只能select某些目录。 例如,对于PDF文件,它将返回下载目录(匹配Environment.DIRECTORY_DOWNLOADS),对于JPG,它将允许我select下载目录和Google驱动器。 但它没有给我select主外部存储上的其他文件夹,也没有在SD卡上的特定于包的目录(我尝试了不同的内容types,如“* / *”或DocumentsContract.Document.MIME_TYPE_DIR,但无济于事)。 所以我在寻找的是一种让用户在主外部文件系统上select一个目录的方法(就像在实际上是内部存储的Environment.getExternalStorageDirectory()所返回的那样)以及框架给我的所有目录到辅助外部存储器中以便将文件保存在该目录中。 无论用户select目录还是文件都不重要,应用程序将使用自己的文件名或用户select的文件名。 或者知道某些应用程序如何find解决新的写入限制的方法当然也是一个可行的select;-)。 ES文件资源pipe理器例如可以写任何文件到SD卡上的任何目录,因为我可以从我自己的testing中确认一个没有根据SD卡的S4。

浏览器意图并返回到正确的活动(closures打开的选项卡)

在Android中的AccountManager中实现自定义帐户types时,我有以下问题的loginstream程: login应通过OAuth提供商进行。 因此,我创build了一个启动WebView并启动OAuthstream程的SignInActivity 。 这工作得很好,当callback接收到my-custom-scheme://callback WebView检测到它,接收code查询string参数,并完成stream程。 使用WebView的缺点是,即使用户在浏览器中可能已经有一个活动的会话,该会话也不会在WebView使用,因此用户将不得不在WebView再次login。 为了解决这个问题,我尝试在AndroidManifest.xml使用intent-filter ,像这样: <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="my-custom-scheme" android:path="callback"/> </intent-filter> 而不是在SignInActivity中打开一个WebView ,然后启动一个浏览器的意图,并等待浏览器打my-custom-scheme://callback 。 Intent browserIntent = new Intent(Intent.ACTION_VIEW, "http://oauth2provider/authorize"); startActivity(browserIntent); finish(); 在我的SignInActivity我有以下代码来处理callback: if (intent != null && intent.getData() != null && getString("my-custom-scheme").equals(intent.getData().getScheme())) { String code = getIntent().getData().getQueryParameter("code"); // complete oauth flow } […]

查看或片段库来编写常见数据types的用户界面

问题 Reusables@common.com £百万 www.inventing-a-wheel.ee 行动捷径: C 我需要让用户input一个电子邮件,select一个date,编辑一个网页,select一个图像等 – 有一些常见的演示任务,不直接由Android SDK小部件库,所以我想可能有一个专门提供这种UI关注的专用存储库或框架。 [ 虽然Android提供了可以变成电子邮件的特定编辑器的小部件,但是这里的问题在于寻找专门针对这种常见数据types的现成组件的库,即专门针对呈现这样的数据的UI元素,并且提供validation。 ] 现有资源? 所以我用Android , widget , library , view , toolkit , fragment , repository等术语的组合search了网页,但是只提出了误报。 您能否介绍我所做的任何集体努力,这些努力都提供了实现公共数据特定input/编辑/configuration元素的类/ XML布局列表? 所以我可以在ActivityA1,ActivityA3,ActivityB1,ActivityN9中做这样的事情: 新的EmailEditText() 新的UrlTextView() 新的IPView()… 将数据匹配到视图? 我真正想要的是一组小部件,根据需要呈现的数据来解决,也许类似于隐式的意图解决scheme ? 所以从我的域模型,我会提供一些具体的数据types的数据,应该适当地显示。 但是我没有明确地设置View将呈现什么样的数据,而是有一个匹配器来筛选可用的特定用途视图列表,并为给定的数据typesselect最合适的视图。 这样的东西在那里呢?

在Samsung Galaxy S上以肖像模式“拍照并呈现”

我正在尝试简单地拍摄一张照片,并用三星银河系统将其呈现在ImageView中。 当我在风景上做,而不是在肖像上,它工作的很好。 我没有得到任何错误或例外 – 只是没有得到任何东西…有关这个话题的很多问题,似乎是有问题的(关于相机方向的东西),但没有找出最终的解决scheme,一个简单的“拍照并呈现“代码。 这是我的(有问题的)代码不起作用: private void setUpListeners() { takePicture.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { Intent cameraIntent = new Intent( android.provider.MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST); } }); } protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == RESULT_OK) { if (requestCode == CAMERA_PIC_REQUEST) { Log.d("onActivityResult", "CAMERA_PIC_REQUEST returned"); […]

当我select任何第三方相机应用程序时,相机意图中的空指针exception

我的问题是,每次我select第三方相机应用程序,例如美丽加相机 ,我每次都得到空指针例外,我的代码是完全适用于默认的相机应用程序,它甚至可以与谷歌的新相机为摩托系列手机。 非常第一次对话框来select画廊或相机选项在这里: private void OpenDialogForImage() { final CharSequence[] items = { "Gallary", "Camera", "Cancel" }; AlertDialog.Builder builder = new AlertDialog.Builder(activity); builder.setItems(items, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int item) { // Do something with the selection switch (item) { case 0: Intent intent1 = new Intent( Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); intent1.setType("image/*"); startActivityForResult( Intent.createChooser(intent1, "Select File"), […]

java.lang.RuntimeException:无法恢复活动

我试图达到的是点击一个button,它应该打开相机..使用点击一个快照,它返回到应用程序与图像视图中单击图片的pipe状图 package com.example.waterbill; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import android.app.Activity; import android.content.Intent; import android.content.pm.ActivityInfo; import android.graphics.Bitmap; import android.os.Bundle; import android.os.Environment; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.ImageView; import android.widget.Toast; public class Bill_meter_satus extends Activity { @Override protected void onResume() { // TODO Auto-generated method stub super.onResume(); } @Override protected void onPause() […]

如何实现Facebook的“新故事”function?

我想在我的应用程序中实现以下function。 我怎样才能做到这一点? 我有两种方法: 每隔1分钟或一段时间后,从webservice获取总的post数。 但为此我需要在后台连续运行一个Thread ,因此可能会出现性能问题 (电池性能) 我可以使用Notification服务来执行此function吗? 或者如果任何人有另一个想法,请给我build议。

删除联系人select选项表单文件select选项

我打开文件select意图,贝娄代码 Intent intent_upload = new Intent(); intent_upload.setType("*/*"); intent_upload.setAction(Intent.ACTION_GET_CONTENT); activity.startActivityForResult(intent_upload, Constants.FILE_PICK_REQUEST_CODE); 我想从列表中删除联系人选项,请任何人都可以帮忙。 谢谢

Android TTS检查支持的语言环境,缺less/未下载的语音数据

我正在使用Android的TextToSpeech类。 一切正常。 但是,有些语言/语言环境默认情况下未安装,但由TTS引擎支持,我无法捕获缺less语音数据的状态。 在互联网上,当我尝试将语言设置为语音数据尚未下载的新语言环境时,它将简单地下载语音数据并正常/成功地执行说话方法。 但是,在closures互联网的情况下,当我尝试将语言设置为语音数据尚未下载的新语言环境时,尝试下载语音数据。 但没有互联网,只是在所选语言环境的“语言和input”下的“TTS语音数据”设置屏幕上显示“下载”,没有任何进展。 而且正如预期的那样,由于没有下载语音数据,所以说方法不起作用。 当发生这种情况时,我会认为TTS方法setLanguage / isLanguageAvailable将返回LANG_MISSING_DATA来捕获这个状态,但是,它只是返回LANG_COUNTRY_AVAILABLE。 情况如下图所示: 我希望能够检测到所选语言环境的语音数据何时未被下载/丢失,并且要么发送Toast消息,要么直接用户下载它。 我已经看到几个postbuild议使用isLanguageAvailable像这样的使用。 我也看了一下android文档 ,好像isLanguageAvailable的返回值应该用LANG_MISSING_DATA来捕获缺less语音数据的状态。 我也尝试发送ACTION_CHECK_TTS_DATA意图作为另一种方式来检查我链接的Android文档中build议的缺失数据。 但是,resultCode再次未捕获/指示语音数据丢失(CHECK_VOICE_DATA_FAIL),而是返回了CHECK_VOICE_DATA_PASS。 在这种情况下,我应该如何捕获可用/支持的语言/区域的状态,并且缺less语音数据? 我也很好奇,为什么CHECK_VOICE_DATA_PASS和LANG_MISSING_DATA不是返回的值。 当语音数据丢失时,不应该返回这些值吗? 谢谢! 下面是我尝试在没有下载语音数据的语言环境中使用setLanguage和isLanguageAvailable时的返回值(0和1是日志中显示的方法的返回值,-1是对应于缺less语音的语法数据):