我有一个基于GWT Java的AppEngine项目,它使用blobstore来存储mp3文件。 为了流式传输blob,我通常通过传递类似的东西来调用我的服务HttpServlet “/ myApp / serve?blob-key = AMIfv ...”到GWT Audio小部件。 dev服务器或部署的代码相同。
现在我正在尝试使用MediaPlayer的Android客户端,但是我遇到了传递给MediaPlayer.setDataSource()的URL的问题。
对于已部署的服务器,此URL可正常运行:http://example.appspot.com/myApp/serve?blob-key=AMIfv...
但我不能让开发模式工作。据我所知,服务器正在http://localhost:8888/
运行,所以我通过了http://localhost:8888/myApp/serve?blob-key=AMIfv...
但是servlet永远不会到达(我尝试了很多变化)。
是否有更好的方法来达到&定义一个变化的后端?类似于端点支持Android客户端提供的数据存储对象? https://developers.google.com/eclipse/docs/endpoints-android 这里,如果我们将LOCAL_ANDROID_RUN设置为true(在CloudEndpointUtils.java中),则Android应用程序将连接到本地开发服务器。如果LOCAL_ANDROID_RUN为false,则客户端库会根据应用程序ID提供正确的URL。
答案 0 :(得分:0)
CloudEndpointUtils.java(来自appengine connected android向导)定义LOCAL_APP_ENGINE_SERVER_URL = "http://localhost:8888/"
。此环回地址不适用于模拟器或真正的android。对于这两种情况,实际接口地址(例如http://192.168.1.2:8888
)提供与devappserver数据存储端点的连接。 Blob存储区。对于模拟器,您可以使用10.0.2.2,它是主机计算机环回接口的模拟器虚拟路由器别名。