如何将数据从一个应用程序发送到android中的其他应用程序?

时间:2013-01-16 10:10:07

标签: android android-intent

我需要将一个应用程序活动中的一些字符串数据发送到android中的其他应用程序活动,而不是同一应用程序中的活动之间。怎么做?什么意图过滤我的其他应用程序需要声明?请尽量详细说明.....

4 个答案:

答案 0 :(得分:14)

据我所知,从你的回答中你可以找到意图:

在App A - Activity Alpha的清单上,您声明了一个类别为DEFAULT且Action = com.your_app_package_name.your_app_name.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

然后回到App A - Activity 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
}

答案 1 :(得分:3)

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

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

您可以在http://developer.android.com/guide/topics/data/data-storage.html

上找到更多信息

答案 2 :(得分:2)

使用Shared Preferences。将模式设置为MODE_WORLD_READABLE

SharedPreferences sharedPref = activity.getPreferences(Activity.MODE_WORLD_READABLE);

答案 3 :(得分:0)

我通过使用Brodcast将gps坐标从应用A传递到应用B来通信两个应用

它在APP B(发送数据的人)中

Intent sendGPSPams = new Intent();
sendGPSPams.setAction(ACTION_GET_GPS_PARAMS);
sendGPSPams.putExtra("Latitude",latitude);
sendGPSPams.putExtra("Longitude",longitude);
sendGPSPams.putExtra("Velocity",velocity);
sendGPSPams.putExtra("DOP",PDOP);
sendGPSPams.putExtra("Date",time);
sendGPSPams.putExtra("Bearing", bearing);

sendBroadcast(sendGPSPams);

这是在应用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);

    }
}

};

请观看这些视频。

Brodcast