4

我正在尝试通过套接字将 android.os.bundle 格式的数据从 Android 模拟器发送到 PC 服务器。现在我可以从 PC 服务器端的 ObjectInputStream 中获取对象,但我无法将其转换为捆绑格式。

以下是我在 PC 服务器端的代码的一些关键行:

android.os.Bundle testInfo = new android.os.Bundle();
ObjectInputStream in = new ObjectInputStream(client.getInputStream());
testInfo = (Bundle)in.readObject();  

这就是控制台演示的内容:

java.lang.RuntimeException: Stub!
at android.os.Bundle.<init>(Bundle.java:5)
at TCPDesktopServer.run(TCPDesktopServer.java:31)
at java.lang.Thread.run(Unknown Source)
4

1 回答 1

0

我不确定你是否可以这么容易地做到这一点。

但是,即使您可以在服务器中成功使用 android.os.Bundle,您也确实不应该这样做,因为您将陷入最终可能会改变的 Android 格式。

除了作为一个 Android 应用程序之外,它实际上是一个解耦您的解决方案的问题。您可以使用中性格式通过套接字连接传输数据。这样一来,Android API 的更改不一定会导致您的 PC 服务器实现发生更改。

我建议您使用 XML、JSON 或 YAML 之类的格式。

这样,您可能必须将 android.os.Bundle 转换为您在 Android 应用程序中选择的中性格式,但您将受益于解耦您的解决方案。

另一个好处是,如果明天您需要将一个新应用程序与您的服务器连接,您将不必在新应用程序中处理 Android API。

于 2015-07-16T04:11:39.603 回答