Articles of android intent

Intent.ACTION_GET_CONTENT与Google云端硬盘

我有以下意图: Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("text/*"); startActivityForResult(intent, DBOpenHelper.REQUEST_CODE_RESTORE); 意图允许用户从多个选项中select一个文本文件。 它与本地存储和Dropbox工作正常,在这两种情况下,我可以得到如下文件: @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if ((requestCode == DBOpenHelper.REQUEST_CODE_RESTORE) && (resultCode == Activity.RESULT_OK)) { restoreFile = new File(data.getData().getPath()); restoreFileName = restoreFile.getName(); } } 本地存储工作正常,Dropbox会将文件的本地副本复制到SD卡并返回正确的path。 问题是,如果用户从Google Drive中select文件。 当他们使用Google Drive时,data.getData()。getPath()会返回类似于“/ document / acc = 1; doc = 195”的内容,而不是将path返回到本地存储的文件。 […]

Intent构造函数的参数

Intent类有6个构造函数 意图() 创build一个空的意图。 意图(意图o) 复制构造函数。 意图(string行动) 用给定的动作创build一个意图。 意图(string行动,Uri uri) 用给定的动作和给定的数据url创build一个intent。 Intent(Context packageContext,Class cls) 为特定组件创build一个意图。 Intent(String action,Uri uri,Context packageContext,Class cls) 使用指定的操作和数据为特定组件创build一个意图。 我在android编程中几乎是新的,大多数时候使用第五个,当我需要启动另一个Activity或Fragment : Intent(Context packageContext, Class<?> cls) 当我想从一个Fragment开始一个Activity ,我这样做: Intent i = new Intent(getActivity(), DestinationActivity.class); 据我所知, getActivity()将返回一个Activity 但构造函数期望一个Context ,这怎么可能? 是否有可能因为getActivity()返回的Activity隐式调用getApplicationContext() ?

使用意向URI启动我的应用程序

我知道这已经在StackOverflow中问了很多次了,但我还没有find一个解决scheme。 我的应用程序发送一个链接的电子邮件,点击时应启动应用程序。 根据@hackbod,最好的方法是使用Intent URI(见这个 )。 这是我的代码,设置意图,并把它放在电子邮件正文: Intent customIntent = new Intent(CUSTOM_ACTION); customIntent.setPackage(MY_PACKAGE); customIntent.addCategory(MY_CAT_BROWSABLE); customIntent.addCategory(MY_CAT_DEFAULT); String customUri = customIntent.toUri(Intent.URI_INTENT_SCHEME); String emailBody = getString(R.string.intent_link, customUri); Intent intent = new Intent(Intent.ACTION_SEND); intent.setType("text/html"); intent.putExtra(Intent.EXTRA_SUBJECT, "Recommending vid"); intent.putExtra(Intent.EXTRA_TEXT , Html.fromHtml(emailBody)); try { startActivity(Intent.createChooser(intent, "Choose email client:")); } catch (android.content.ActivityNotFoundException ex) { Toast.makeText(this, "There are no email clients installed.", Toast.LENGTH_SHORT).show(); } […]

androidsearch传递包

你好我使用的是Android 3.0的search部件 (不是search模式),问题是我需要传递一些参数,随着search词。 Android不会调用任何这些 searchManager.setOnDismissListener( new OnDismissListener() { @Override public void onDismiss() { // TODO Auto-generated method stub Log.v(MyApp.TAG, "on dismiss search"); } }); searchManager.setOnCancelListener( new OnCancelListener() { @Override public void onCancel() { // TODO Auto-generated method stub Log.v(MyApp.TAG, "on dismiss cancel"); } }); @Override public boolean onSearchRequested() { Bundle appData = new Bundle(); appData.putLong("listino_id", […]

Google Play音乐占用了所有的ACTION_MEDIA_BUTTON意图吗?

当发送带有ACTION_MEDIA_BUTTON意图的sendOrderedBroadcast(我模仿用户点击蓝牙耳机上的播放button)时,Google Play音乐将打开并播放上一个播放的专辑,而不是前台音乐播放应用程序。 如果我将其更改为sendBroadcast,Google Play音乐和当前的音乐播放应用程序(在我的案例中为潘多拉盒型拼版软件)都将制作播放button。 这只发生在Android 4.0及以上 。 是玩音乐霸占这个意图(一个bug)? 你是否怀疑潘多拉盒型录音机并没有注册成为当前的媒体button处理程序: http : //android-developers.blogspot.com/2010/06/allowing-applications-to-play-nicer.html 有没有一种方法可以将这个意图指向目前的音乐播放应用程序? 这是我的代码: public void broadcastMediaIntent(MediaIntent intentType){ long eventtime = SystemClock.uptimeMillis(); Intent downIntent = new Intent(Intent.ACTION_MEDIA_BUTTON, null); Intent upIntent = new Intent(Intent.ACTION_MEDIA_BUTTON, null); KeyEvent downEvent = null; KeyEvent upEvent = null; switch(intentType){ case NEXT: downEvent = new KeyEvent(eventtime, eventtime, KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_MEDIA_NEXT, 0); upEvent = […]

onActivityResult永远不会被称为Phonegap Cordova

我正在使用ZXing作为库项目的PhoneGap条码扫描器插件。 我有一个在Galaxy Tab 2(7“)上完美工作的代码,相同的代码在Galaxy S3上不起作用。 问题:当ZXing CaptureActivity扫描条形码时,只需完成CaptureActivity和Calling活动就不会返回onActivityResult方法。 MainFest。 <activity android:name=".activity.MainActivity" android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale" android:label="@string/app_name" android:theme="@android:style/Theme.Black.NoTitleBar" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="com.google.zxing.client.android.CaptureActivity" android:configChanges="orientation|keyboardHidden" android:screenOrientation="landscape" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" android:windowSoftInputMode="stateAlwaysHidden" > <intent-filter> <action android:name="com.phonegap.plugins.barcodescanner.SCAN" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity> </application> MainActivity.java public void startActivityForResult(CordovaPlugin command, Intent intent, int requestCode) { this.activityResultCallback = command; this.activityResultKeepRunning = […]

意图在Android中采取video

我只需要使用前置摄像头从我的应用程序中获取video。 我正在使用意图执行此操作。 Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE); intent.putExtra(MediaStore.EXTRA_OUTPUT, videoUri); intent.putExtra("android.intent.extra.durationLimit", 30); intent.putExtra("android.intent.extras.CAMERA_FACING", 1); //to open front facing camera startActivityForResult(intent, VIDEO_CAPTURE); 当我运行应用程序时,我可以使用前置摄像头拍摄video。 但是,假设当我点击我的录制videobutton,相机视图打开。 在那个用户去和改变相机后面的相机,然后总是我的意图是打开后方摄像头之后。 它没有走线 intent.putExtra("android.intent.extras.CAMERA_FACING", 1); 有人可以告诉我这是什么问题,是否可以用意向解决?

Android使用expandableListView显示列表

我遵循这个例子教程,并开发了一个示例应用程序http://www.androidhive.info/2013/07/android-expandable-list-view-tutorial/ 如果我点击核心,我想加载一个更多的列表在同一个屏幕下的核心 ,我怎么可以做到这一点?使用我的下面的代码我能够加载在另一个屏幕上的子列表,帮助? 我的ChildClickListener的代码在这里: @Override public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) { // TODO Auto-generated method stub Log.d("onChildClick", "onChildClick"); String position = (String) parentItems.get(groupPosition); Log.d("position", position); String child = listDataChild.get(position).get(childPosition); Log.d("child", child); if (child.equalsIgnoreCase("Core")) { ArrayList<String> parentItems = new ArrayList<String>(); HashMap<String, List<String>> listDataChild = new HashMap<String, List<String>>(); ArrayList<String> childItems […]

如果活动由同一个class级实施,如何回到特定的活动

要实现向上导航,我想回到历史堆栈上的特定活动。 如果堆栈中的活动是由不同的类来实现的,它就是这样工作的(假设我在堆栈上有活动A,B和C,并想返回活动A: protected void onUpPressed() { Intent intent = new Intent(this, A.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP); startActivity(intent); finish(); } Android会popup堆栈中的活动,直到意图指定的活动是最顶层(在这种情况下由A类实现的活动)。 但是,我的应用程序在同一个类实现的堆栈上有几个活动。 这是因为它们显示的是相同types的数据,但对于不同的对象。 它们的启动意图是指定实现活动的类和要显示的对象(在extras包中或data属性中)。 现在我正在查找代码,再次从历史堆栈中popup几个活动,直到匹配活动最顶层。 如果我扩展上面的代码,并额外设置额外捆绑或数据属性,它不起作用。 Android始终与指定类实现的第一个活动相匹配,并且回溯得不够远。 extras包和data属性被忽略。 protected void onUpPressed() { Intent intent = new Intent(this, A.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP); intent.setData(Uri.parse("myapp:" + rootId)); startActivity(intent); finish(); } 那么我怎样才能回到具体的活动呢? Android比较哪些意图字段来确定它是否find了期望的活动?

通过Twitter应用程序分享图像的URL – Android

我试图通过Twitter应用程序分享一些文字和图像。 图片来源是url。 以下是我的代码: sharingIntent = new Intent(android.content.Intent.ACTION_SEND); sharingIntent.setType("*/*"); sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, "I am reading this publication, check it out here: "+bookmark_url+""); sharingIntent.putExtra(android.content.Intent.EXTRA_STREAM, Uri.parse("http://example.com/images/thumbs/file_name.jpg")); 但只有文本通过Twitter应用程序分享。 我也收到一条消息,说“ 图片无法加载 ”。 这个代码有什么问题?