Tag: android intent

获取当前显示的片段

我正在玩Android的片段。 我知道我可以通过使用下面的代码来改变片段: FragmentManager fragMgr = getSupportFragmentManager(); FragmentTransaction fragTrans = fragMgr.beginTransaction(); MyFragment myFragment = new MyFragment();//my custom fragment fragTrans.replace(android.R.id.content, myFragment); fragTrans.addToBackStack(null); fragTrans.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); fragTrans.commit(); 我的问题是,在一个Java文件中,如何获取当前显示的片段实例?

Android多个电子邮件附件使用意图

我一直在Android程序上使用Intent和ACTION_SEND发送附件(图像文件,audio文件等)的电子邮件。 当电子邮件有一个附件时,该程序正在工作。 我使用Intent.putExtra(android.content.Intent.EXTRA_STREAM, uri)将指定的图像文件附加到邮件,它工作正常,邮件可以通过Gmail传递。 但是,当我试图通过多次调用Intent.putExtra(android.content.Intent.EXTRA_STREAM, uri)多个图像附加到相同的邮件,它失败了。 没有附件显示在电子邮件中。 我search了关于电子邮件附件的SDK文档和Android编程用户组,但找不到任何相关信息。 但是,我发现还有另一个意图常量ACTION_SEND_MULTIPLE (可用于API级别4),可能会满足我的要求。 基于SDK文档,它只是表示它将多个数据传递给其他人,它像ACTION_SEND一样工作,除了数据是多个的。 但是我仍然无法弄清楚这个命令的正确用法。 我试图用ACTION_SEND_MULTIPLE声明intent,然后putExtra(EXTRA_STREAM, uri)调用putExtra(EXTRA_STREAM, uri)来附加多个图像,但是我得到了和以前一样的错误结果,没有附件出现在电子邮件中。 有没有人尝试过ACTION_SEND_MULTIPLE并得到它与多个电子邮件附件的工作?

在Android应用程序中使用Intent来显示另一个活动

在我的Android应用程序中,我有两个活动类。 我有第一个button,我想显示第二个点击时,但我得到一个错误。 这里是类: public class FirstActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button orderButton = (Button)findViewById(R.id.order); orderButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent(FirstActivity.this, OrderScreen.class); startActivity(intent); } }); } } 点击button时应该显示的第二个类,但从来没有: public class OrderScreen extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); […]

以编程方式安装/卸载APK(PackageManager vs Intents)

我的应用程序安装了其他应用程序,并且需要跟踪它安装的应用程序。 当然,这可以通过简单地保存已安装应用程序的列表来实现。 但是这不应该是必要的! PackageManager负责维护installedBy(a,b)关系。 实际上,根据API,它是: public abstract String getInstallerPackageName (String packageName) – 检索安装包的应用程序的包名称。 这标识了包装来自哪个市场。 目前的做法 使用意图安装APK Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(apkUri, "application/vnd.android.package-archive"); startActivity(intent); 使用Intent卸载APK: Intent intent = new Intent(Intent.ACTION_DELETE, Uri.fromParts("package", getPackageManager().getPackageArchiveInfo(apkUri.getPath(), 0).packageName,null)); startActivity(intent); 这显然不是Android Market安装/卸载软件包的方式。 他们使用更丰富的PackageManager版本。 这可以通过从Android Git存储库下载Android源代码来看到。 以下是对应于Intent方法的两个隐藏方法。 不幸的是,它们不适用于外部开发者。 但也许他们会在未来? 更好的方法 使用PackageManager安装APK /** * @hide * * Install a package. Since this may […]

Android意图filter的特定文件扩展名?

我希望能够从网上下载一个具有特定扩展名的文件,并将其传递给我的应用程序来处理它,但我一直无法弄清楚意图filter。 文件types不包含在mimetypes中,我尝试使用 <data android:path="*.ext" /> 但我无法得到这个工作。

基于安装的Android软件包名称自定义筛选意向select器

我想利用内置的意向select器来显示一个自定义的过滤应用程序列表供用户select和启动。 我知道如何获得已安装软件包的列表: final Intent myIntent = new Intent(android.content.Intent.ACTION_MAIN); List<ResolveInfo> resInfoList = getPackageManager().queryIntentActivities(myIntent, 0); 在这一点上,我想根据包名称中包含的特定string(或string的变体)过滤列表,我可以弄清楚如何做。 但是这里是我卡住的地方。 据我所知, Intent.createChooser()只将一个目标Intent作为参数。 我希望有一个重载,基于包和类名称或其他意图的列表。 但是我没有看到这样的事情。 我有没有想念那个地方? 所以问题是,这可能与内置的select器,或者我必须构build我自己的AlertDialog生成器? 我希望避免后来。 提前致谢。

检查INTENT互联网连接

有一个Android Intent ACTION_XXX在Internet连接可用时通知我? 我将实例化一个BroadcastReceiver ,通知我的应用程序,当用户启用互联网连接(通过WiFi,通过GSM等…) 任何人都可以帮我吗?

RuntimeException:无法实例化应用程序

当我运行我的应用程序时,每次我得到我的logcat中的以下exception: 04-14 09:29:53.965: W/dalvikvm(1020): threadid=1: thread exiting with uncaught exception (group=0x409c01f8) 04-14 09:29:53.985: E/AndroidRuntime(1020): FATAL EXCEPTION: main 04-14 09:29:53.985: E/AndroidRuntime(1020): java.lang.RuntimeException: Unable to instantiate application android.app.Application: java.lang.NullPointerException 04-14 09:29:53.985: E/AndroidRuntime(1020): at android.app.LoadedApk.makeApplication(LoadedApk.java:482) 04-14 09:29:53.985: E/AndroidRuntime(1020): at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3938) 04-14 09:29:53.985: E/AndroidRuntime(1020): at android.app.ActivityThread.access$1300(ActivityThread.java:123) 04-14 09:29:53.985: E/AndroidRuntime(1020): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1185) 04-14 09:29:53.985: E/AndroidRuntime(1020): at android.os.Handler.dispatchMessage(Handler.java:99) 04-14 09:29:53.985: E/AndroidRuntime(1020): […]

尝试将SD卡中的文件附加到电子邮件

我正在尝试发送一个意图发送电子邮件。 所有这些工作,但是当我试图发送电子邮件时发生了一些“奇怪”的事情。 这里是代码 Intent sendIntent = new Intent(Intent.ACTION_SEND); sendIntent.setType("image/jpeg"); sendIntent.putExtra(Intent.EXTRA_SUBJECT, "Photo"); sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://sdcard/dcim/Camera/filename.jpg")); sendIntent.putExtra(Intent.EXTRA_TEXT, "Enjoy the photo"); startActivity(Intent.createChooser(sendIntent, "Email:")); 因此,如果我使用Gmail菜单上下文启动它显示附件,让我键入谁是电子邮件,并编辑正文和主题。 没什么大不了。 我点击发送,然后发送。 唯一的是附件不会被发送。 所以。 我想,为什么不试试w /电子邮件菜单上下文(为我的电话备份电子邮件帐户)。 它显示的依恋,但在身体或主题没有文字。 当我发送它时,附件发送正确。 那会让我相信有些事情是错的。 我是否需要在Manifest发布新的许可意向发送电子邮件瓦特/附件? 我究竟做错了什么?

如何直接从我的Android应用程序打开Goog​​le Play商店?

我已经打开谷歌Play商店使用follwing代码 Intent i = new Intent(android.content.Intent.ACTION_VIEW); i.setData(Uri.parse("https://play.google.com/store/apps/details?id=my packagename ")); startActivity(i);. 但它显示了一个完整的行动视图select选项(浏览器/播放存储)。 我需要直接在Playstore中打开应用程序。