如何从本机android代码(代号1)访问默认包中的文件

如何从本机android代码(代号1)访问默认包中的文件,android,native,codenameone,Android,Native,Codenameone,由于我无法在应用程序未运行时使用对象进行播放,但我必须在该状态下播放媒体文件,因此我需要一个解决方案来从本机代码访问媒体文件,并为本机媒体播放器引用它们(通过path或Inputstream)。我仍然希望以这种方式放置相关文件,这样就不会成为从本机iOS代码访问它们的负担。 我考虑了两个选项,但在我的实现中无法真正管理 将相关数据文件放在GuiBuilder的数据部分,并通过对象访问它们(并调用getData(id))。但是当我试图在Resources.open(“/theme”)上创建Reso

由于我无法在应用程序未运行时使用对象进行播放,但我必须在该状态下播放媒体文件,因此我需要一个解决方案来从本机代码访问媒体文件,并为本机媒体播放器引用它们(通过path或Inputstream)。我仍然希望以这种方式放置相关文件,这样就不会成为从本机iOS代码访问它们的负担。 我考虑了两个选项,但在我的实现中无法真正管理

  • 将相关数据文件放在GuiBuilder的数据部分,并通过对象访问它们(并调用
    getData(id)
    )。但是当我试图在
    Resources.open(“/theme”)上创建
    Resources
    对象时从Android上的本机代码中,我得到以下异常:
    java.io.IOException:/theme未找到
  • 将相关数据文件保存在默认包中,并通过
    Class.getResourceAsStream
    Class.getResource
    访问它们。但我不知道如何指向那些文件。我尝试了各种途径,但没有成功

  • 如果您将媒体文件复制到文件系统存储,那么在本机端访问它应该相当容易。您只需将路径传递到本机接口即可

    也就是说,我已经开发了一些带有背景音频的CN1应用程序,没有问题。在iOS上,您只需提供
    iOS.background\u modes=audio
    build提示,应用程序就可以在后台运行


    如果您使用
    Display.createBackgroundMedia()
    方法来创建媒体,那么Android也将使用后台服务来播放媒体。

    将文件复制到文件系统存储帮助了我,关于iOS的建议也很相关,谢谢。但我的下一步就要走了。问题是cn1的许多功能在应用程序未运行(甚至日志)时不可用。我的应用程序模型自然地使用cn1的存储方法进行序列化/反序列化。不幸的是,当我试图用本机代码(当应用程序未运行时!)反序列化我的模型(其中包含媒体文件的关键元数据)时,这是一个问题。我试图通过使用NativeLookup来解决这个问题,但它也不起作用。。。。那样的话。当应用程序未运行时,是否有可能通过静态回调方法使用NativeLookup?你所说的“当应用程序未运行时”是什么意思?你是说在后台跑步吗?在后台跑步时,有很多尖角。当您在本机的后台运行时,会有更尖锐的角落,解决方案将取决于具体情况。是的,很简单。我的意思是服务在后台独立运行(但使用与应用程序相同的模型)。。确实有很多尖角,我不得不去体验。。