我需要将一些字符串数据从我的一个应用程序活动发送到我在 android 中的另一个应用程序活动,而不是在同一应用程序内的活动之间。怎么做?我的其他应用程序需要声明什么意图过滤器?请尝试举例说明......
问问题
23985 次
3 回答
16
据我从您的回答中了解到,您正在寻找意图:
在 App A - Activity Alpha 的清单上,您声明了一个带有 Category DEFAULT 和 Action = 的意图过滤器 com.your_app_package_name.your_app_name.ActivtiyAlpha
在 App B,Activity Beta 上,您将代码用于启动 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
}
于 2013-01-16T10:26:43.067 回答
2
如果您只关心少量数据,Android 提供了一个 SharedPreferences 类来在应用程序之间共享首选项。最值得注意的是,您可以将 OnSharedPreferenceChangeListener 添加到每个应用程序,以便在其他应用程序更改值时通知它们。
最重要的是,您无法确保两个应用程序都在运行
您可以在http://developer.android.com/guide/topics/data/data-storage.html上找到更多信息
于 2013-01-16T10:21:40.740 回答
0
我通过使用广播将 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);
这是在接收 GPS 参数或从应用 B 发送的数据的应用 A 中
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);
}
}
};
请看这个视频。
于 2019-11-29T20:55:55.770 回答