在android中,如何将数据从一个应用程序发送到另一个应用程序?

在android中,如何将数据从一个应用程序发送到另一个应用程序?,android,android-intent,Android,Android Intent,我需要将一些字符串数据从我的一个应用程序活动发送到android中的另一个应用程序活动,而不是在同一个应用程序中的活动之间发送。怎么做?我的其他应用程序需要声明什么?请尝试用示例详细说明……如果您只关心少量数据,Android提供了一个SharedReferences类来在应用程序之间共享首选项。最值得注意的是,您可以向每个应用程序添加OnSharedPreferenceChangeListener,以便在其他应用程序更改值时通知它们 最重要的是,您不能确保两个应用程序都在运行 你可以在上找到更

我需要将一些字符串数据从我的一个应用程序活动发送到android中的另一个应用程序活动,而不是在同一个应用程序中的活动之间发送。怎么做?我的其他应用程序需要声明什么?请尝试用示例详细说明……

如果您只关心少量数据,Android提供了一个SharedReferences类来在应用程序之间共享首选项。最值得注意的是,您可以向每个应用程序添加OnSharedPreferenceChangeListener,以便在其他应用程序更改值时通知它们

最重要的是,您不能确保两个应用程序都在运行


你可以在

上找到更多信息,据我所知,从你的回答中,你正在寻找意图:

在应用程序A-活动Alpha的清单上,您声明了一个带有类别默认值和操作=
com的意图过滤器。您的应用程序包名称。您的应用程序名称。ActivtiyAlpha

在应用程序B的活动测试版中,您将代码放入启动A并传递数据:

Intent i = new Intent("com.your_app_package_name.your_app_name.ActivtiyAlpha");
i.putExtra("KEY_DATA_EXTRA_FROM_ACTV_B", myString);
// add extras to any other data you want to send to b
然后回到应用程序A-活动Alpha,您输入以下代码:

Bundle b = getIntent().getExtras();
if(b!=null){
    String myString = b.getString("KEY_DATA_EXTRA_FROM_ACTV_B");
    // and any other data that the other app sent
}

我使用brodcast将gps坐标从应用程序A传递到应用程序B,从而与两个应用程序通信

这在应用程序B中(谁发送数据)

这是在应用程序A中接收gps参数或从应用程序B发送的数据

private  BroadcastReceiver   myBrodcast = new BroadcastReceiver() {
double latitude;
double longitude;
double velocity;
double DOP;
String date;

double bearing;
@Override
public void onReceive(Context context, Intent intent) {


        if (intent.getAction().equals(ACTION_GET_GPS_PARAMS)) {

            latitude = intent.getDoubleExtra("Latitude", 0);
            longitude = intent.getDoubleExtra("Longitude", 0);
            velocity = intent.getDoubleExtra("Velocity", 0);
            DOP = intent.getDoubleExtra("DOP", 0);
            date = intent.getStringExtra("Date");
            bearing = intent.getDoubleExtra("Bearing", 0);
            String text = "Latitude:\t" + latitude +"\nLongitude\t"+ longitude +
                    "\nVelocity\t" +velocity +"\nDOP\t" + DOP +"\n Date \t" + date +"\nBearing\t" + bearing;
            tv_text.setText(text);

    }
}
})

请看这段视频


Thanx谢谢你的回复……我已经按照你说的那样做了,但是发送意图的应用程序被停止了……当我看到日志时,它显示了权限拒绝:Starting intent action=……在清单中,将接收意图的活动标记为已启用并已导出。下面是应用程序之间的教程。如果它是简单的数据,请使用共享首选项,如果它是复杂的,请使用基于sqlite的内容提供程序
private  BroadcastReceiver   myBrodcast = new BroadcastReceiver() {
double latitude;
double longitude;
double velocity;
double DOP;
String date;

double bearing;
@Override
public void onReceive(Context context, Intent intent) {


        if (intent.getAction().equals(ACTION_GET_GPS_PARAMS)) {

            latitude = intent.getDoubleExtra("Latitude", 0);
            longitude = intent.getDoubleExtra("Longitude", 0);
            velocity = intent.getDoubleExtra("Velocity", 0);
            DOP = intent.getDoubleExtra("DOP", 0);
            date = intent.getStringExtra("Date");
            bearing = intent.getDoubleExtra("Bearing", 0);
            String text = "Latitude:\t" + latitude +"\nLongitude\t"+ longitude +
                    "\nVelocity\t" +velocity +"\nDOP\t" + DOP +"\n Date \t" + date +"\nBearing\t" + bearing;
            tv_text.setText(text);

    }
}