打开并将数据发送到另一个Android应用程序

时间:2014-09-12 09:01:53

标签: java android eclipse android-intent

有人知道如何打开数据并将数据发送到另一个应用程序吗?

我有一个我想发送它的字符串,我使用了ACTION.MAIN和putExtra来发送字符串:

 String smth = "Test";

 Intent intents = new Intent(Intent.ACTION_MAIN);
 intents.setComponent(new ComponentName("com.package.address","com.package.address.HelloGlassActivity"));
 intents.putExtra("STRING", smth);
 mContext.startActivity(intents);

我在Android中声明了另一个项目(应用程序)的意图:

 <intent-filter>
                <action android:name="android.intent.action.SEND" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:mimeType="text/plain" />
 </intent-filter>

在Android Manifest中声明意图后,我在我的一个活动中调用了intent:

  Intent intent = getIntent();
  String tester = intent.getStringExtra("STRING");

不幸的是,当我运行第一个应用程序时,我无法打开第二个应用程序。谁知道我错过了什么?

4 个答案:

答案 0 :(得分:0)

使用startActivity(Intent intent)方法将该意图发送到应用程序。您还可以向intent添加特定类型,以便定义哪些活动可以捕获它。

答案 1 :(得分:0)

我认为您已在清单文件中声明了第二个活动。

答案 2 :(得分:0)

Intent分为两个类,一个是显式意图,就像你所做的一样,你设置了特定的组件,但只有在同一个application.second中的组件是隐式intent时才有效,不要命名特定组件,但是而是声明要执行的一般操作,它允许来自另一个应用程序的组件处理它。这意味着只需构建 意图使用动作,并且活动将捕获它取决于您在意图过滤器中声明的操作。您混合了两种意图。

答案 3 :(得分:0)

使用Content Provider。然后,要从应用程序A访问应用程序B中的文件,您可以在应用程序ContentProvider中声明A并覆盖public ParcelFileDescriptor openFile(Uri uri, String mode)方法。然后,应用程序B可以使用A方法通过适当的uri访问位于应用程序getContentResolver().openInputStream(...)的数据目录中的文件。

有关详细信息,请参阅:

http://www.grokkingandroid.com/handling-binary-data-with-contentproviders/

https://stackoverflow.com/a/4336013/148272