【问题标题】:Sharing data between two android applications在两个安卓应用程序之间共享数据
【发布时间】:2015-12-09 05:07:51
【问题描述】:

我有一个 java 应用程序,它以一种奇怪的格式存储一些 GPS 数据:

(latitude,longitude,workerId) 使用这个类:

public class Coordinate {
  private final double lon;
  private final double lat;
  private final int workerId;

  public Coordinate(double lat, double lon, int workerId) {

    this.lat = lat;
    this.lon = lon;

    this.workerId=workerId;
  }

  public double getLon() {
    return lon;
  }

  public double getLat() {
    return lat;
  }
  public int getwId(){
      return workerId;
   }
}

问题是每次我有一个(经度,纬度)时,我都必须在该对中添加一个 workerId(它是一个 int)。

现在这是我的问题:

这种格式的数据我正在发送给一个不熟悉这种格式的android应用程序......

您是否知道是否有可能在我的整个应用程序的 android 端从这种格式中获取我的经度和纬度?

我有理由在此表单下发送数据:)

如果我在我的 android 应用程序中构建一个类,就像这个用来包装数据的类......我可以取回你的原始数据吗?

更新:

我的第一个应用程序是用 java 编写的,它是一个服务器,用于侦听到特定端口的传入连接。

我的第二个应用是在 android 上,是一种客户端。

这两个通过套接字进行通信......所以没有磁盘写入......没有任何东西。 第一个在本地机器上,第二个在手机上。

是的,我正在从上面通过套接字和类的实例发送!

类似:

Coordinate coord=new Coordinate(lat,long,id);    
os.println(coord);

如何在 Android 应用上取回我的数据?

【问题讨论】:

    标签: java android gps


    【解决方案1】:

    我猜您的应用程序正在发送您展示的类的实例?如果是这样,您为什么不给您的 Android 应用程序提供类文件,以便您可以重新创建对象并从中读取?

    如果您想在同一设备上的两个 Android-应用程序之间共享内容,则使用 ContentProvider


    您不能只发送一个对象的实例并在另一端接收它。对象必须被序列化和反序列化(在接收方)。因此,Java 有ObjectOutputStream- 和ObjectInputStream- 类。

    【讨论】:

    • 不,从您发布的内容来看,就是这样:将带有 ObjectOutputStream 的对象发送到您的 Android 客户端,并使用 ObjectInputStream 读取。如果这不是您想要的,请解释您需要什么。
    【解决方案2】:

    如果您将数据发送到另一个应用程序,您是否使用 Intent 来启动它?如果你是,你可以拥有一个实现可序列化的存储类,并使用 Intent 传递 Bundle 中的数据。如果您没有使用 Intent 启动,则可以将数据写入磁盘并从其他应用程序读取。

    【讨论】:

    • 包裹+1,但SD卡不是常用的方法。
    猜你喜欢
    • 2012-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-16
    • 1970-01-01
    • 1970-01-01
    • 2014-03-14
    相关资源
    最近更新 更多