Articles of android intent

Android系统。 自定义意向select器

我不知道,有什么方法可以select使用Intent.createChooser方法的行为? 例如,如果select了第一个选项,我将通过电子邮件发送图像。 而第二个选项,我想发送sms与该图像上的链接(为此我需要复杂的操作 – 上传图像到服务器,检索下载链接,我想在sms粘贴它到sms ) 你可能会提出什么build议,我该怎么做才能完成第二项任务? 我相信我可以发送一个像这样的图像的电子邮件: Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND); emailIntent.setType("application/image"); emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{textMail}); emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,"Some Subj"); emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Some Extra Text"); emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse(fileUri)); startActivity(Intent.createChooser(emailIntent, "Send mail…")); UPD:我意识到,如果sms是在意向select器中select的,我真正需要的是拦截用户点击。 那么问题是如何实现呢?

打开活动A并加载活动A的活动B的特定片段

我有活动A根据菜单select加载片段。 如果我从活动B到活动A做了一个意图,将加载默认指定的活动A片段。 我想要实现的是从活动A而不是默认的加载另一个片段。 我希望这至less有一点道理。 我试图做的是这个 – > 在活动BI有 – > btnlinkToForum.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { Intent i = new Intent(getApplicationContext(), ReaderActivity.class); i.putExtra("fragmentNumber", 1); startActivity(i); } }); 我尝试基于putExtra数据来加载活动A中的特定片段 – >我将这段代码放入onCreate方法 if (getIntent().getIntExtra("fragmentNumber", 0) == 1) { FragmentManager fm = ReaderActivity.this.getSupportFragmentManager(); FragmentTransaction ft = fm.beginTransaction(); FragmentForum fragment = new FragmentForum(); if (fragment != null) […]

Android的 – 没有发现活动处理意图{动作= android.intent.action.VIEW – 试图打开PDF文件

我search了很多,find一个解决scheme,但仍然找不到任何 我想在我的android应用程序中打开一个PDF文件 这是我的代码来做到这一点: try { File file = new File(Environment.getExternalStorageDirectory()+"/pdf/Read.pdf"); Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); Uri uri = Uri.fromFile(file); Log.d("CheckingURI", uri.toString()); intent.setDataAndType(uri, "application/pdf"); startActivity(intent); } catch (Exception e) { Log.d("OpenPDFError", e.getMessage()); } Tomcat日志意味着没有活动来处理意图 09-19 19:55:02.938: D/CheckingURI(30483): file:///mnt/sdcard/pdf/Read.pdf 09-19 19:55:02.948: D/OpenPDFError(30483): No Activity found to handle Intent { act=android.intent.action.VIEW dat=file:///mnt/sdcard/pdf/Read.pdf typ=application/pdf } 有没有其他的方式来做到这一点,或者我可以打开PDF文件与另一个默认的PDF查看器? 如果是的话,怎么样? 更新:主要的问题是,我没有在我的模拟器上安装PDF查看器应用程序…

如何知道活动已经完成?

我想查看一个活动是否正在运行或完成。 有什么方法可以检查活动状态吗? 我发现activity.isFinishing()但我不确定。

Android:仅在onCreate中使用getIntent()?

在Android中(针对API 14-16),我有一个MainActivity和一个NextActivity 。 如果在NextActivity的onCreate()块中调用getIntent()方法,则使用NextActivity从MainActivity启动NextActivity并不困难: public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); int data = 7; … Intent intent = new Intent(this, NextActivity.class); intent.putExtra("data", data); startActivity(intent); } } public class NextActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); final int data = this.getIntent().getIntExtra("data", 7); … } … […]

onActivityResult在Activity启动时被调用,而不是在完成时调用

我用一些标签写了一个FragmentActivity。 当我用startActivityForResult调用额外的活动(我用它来设置用户的喜好)(如果它在FragmentActivity或ListFragment没有差异)onActivityResult被调用,当我开始这个偏好活动,但不是当我完成它作为我期望它(再次没有差异,如果它在FragmentActivity或在ListFragment)。 在我完成偏好活动之后,这个方法根本不会被调用。 我的问题是,我想刷新我的当前选项卡(并设置最后使用的选项卡ID),我完成首选项活动后,我希望能够在onActivityResult方法中做到这一点。 这是创build偏好活动的类: public abstract class ListFragmentBase<I> extends ListFragment implements LoaderCallbacks<List<I>> { 这是转发我到这个类内的偏好活动的方法: protected void forwardToPreferences(int currentTab){ Intent intent = new Intent(getActivity(), GlobalPreferencesActivity.class); getActivity().startActivityForResult(intent, 10); } 这是调用上述方法后调用的方法,但不是在我完成被调用的活动之后 @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); } 这是偏好活动: public class GlobalPreferencesActivity extends Activity { 在这个课堂里面,你会看到我怎么称呼完成方法: TextView confirmSettings = (TextView) […]

在Android 4.2+上使用intent安装apk时启用降级

在Android 4.2+上使用intent安装apk时可以启用降级function吗? 我发现,通过命令shell(使用-d) adb install -r -d <link to apk>安装应用程序时,有可能通过Intent来实现。 我正在寻找一些国旗或什么的,但我没有find任何有用的东西。 这是我打算打开包安装程序的意图: Intent intent = new Intent(Intent.ACTION_VIEW); Uri applicatonFileUri = Uri.fromFile(applicationFile); intent.setDataAndType(applicatonFileUri, PACKAGE_TYPE); startActivity(intent);

如何创build一个自定义的锁屏小部件(我只是想显示一个button)

当设备被locking时,我需要允许用户使用我的应用快速捕捉图像。 我认为用户通过锁屏上的button/小部件来做到这一点最快捷的方式 – 虽然我不知道如何build立这个。 我发现的大部分参考文献都涉及音乐播放和RemoteControlClient(可能只是Android 4.4?)的使用。 在最基本的方面,我只是喜欢一个说“捕捉”的button。 任何帮助如何做到这一点?

fb:// profile / {userid}似乎不起作用

我尝试在特定页面上启动Facebook应用程序,它正在使用早期版本的FB APP,但新版本是25.0.0.19.30。 这个function不起作用,与uri.parse(“fb:// profile / {userid}”)的意图带我到内容不可用页面。 这是来自Facebook的安全更新吗? 任何其他方式来启动与特定的用户页面的应用程序。

从服务启动活动需要很长时间

我有一个Service ,当一个function给我,它会启动一个新的Activity但它需要5秒钟… 我读过关于这个issue ,我发现在StackOverflow这个例子“避免”这个错误.. Intent intent = new Intent(this, MainActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, 0); try { pendingIntent.send(); } catch (PendingIntent.CanceledException e) { e.printStackTrace(); } 但不幸的是,它并没有启动更快的Activity ,我不需要中立(如果可能的话更好),但我不想等待+5秒来启动新的Activity ,你有没有什么窍门可以避免这个? 我正在使用PendingIntent因为我发现那个说应该解决这个问题的人: 在没有5秒延迟的情况下按HOMEbutton之后从服务开始一个活动 注意 如果我按back button它自动启动,0延迟,但我正在按home button 。