适用于 Android 的 Upnp 本机扩展 - AIR

Posted

技术标签:

【中文标题】适用于 Android 的 Upnp 本机扩展 - AIR【英文标题】:Upnp Native Extension for Android - AIR 【发布时间】:2014-04-03 18:43:23 【问题描述】:

长期以来,我们一直在使用 Adob​​e AIR 开发一个 android 项目,现在我们需要实现该功能以在网络中搜索 Upnp 设备。据我了解,无法在 AIR 级别实现此功能(如果我错了请纠正我),因此需要 Android 原生扩展。我找不到任何可用的 UPNP 本机扩展,并决定基于 Cling 库 Cling UPNP Browser 构建一个。我可以让它作为原生 Android 应用程序工作,但是当我尝试将其转换为 AIR 原生扩展时,它根本不起作用。是否有人在 Android - AIR 上成功实施 UPNP,任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

在花了更多时间寻找其他替代方案之后,我终于使用CyberLink For Java 使其工作。 Cyber​​Link 库的实施非常简单。对于任何计划为 Android 创建自己的 UPNP 原生扩展的人,以下是构建 .jar 原生扩展的过程。

    将外部网络链接 .jar 库包含到您的 Android Java 项目中。

    要开始搜索 UPNP 设备,您必须打开一个新线程:

       new SearchingForUpnpTask().execute("Empty Param"); //You can specify your own param...
       private class SearchingForUpnpTask extends AsyncTask<String, Void, DeviceList>
            protected DeviceList doInBackground(String... params)
                ControlPoint ctrPoint = new ControlPoint(); 
            ctrPoint.start("upnp:rootdevice");
                DeviceList devList = ctrPoint.getDeviceList();
                int nRootDevs = devList.size(); 
            for (int n=0; n < nRootDevs; n++)  
                    Device dev = devList.getDevice(n); 
            String devName = dev.getFriendlyName(); 
                System.out.println("[" + n + "] = " + devName); 
            
        ...              
       return devList;
      
    

    为您的 Android 编译 .jar 文件需要一些工作,因为 Adob​​e AIR 不理解我们包含的您的外部网络链接 .jar 文件。当您尝试调试本机扩展时,您将收到错误 Log: ...the class 'org...ControlPoint' is not found in the method ... 。为了使其工作,您必须将所有 .jar 文件合并为一个。我们有两个选择:

    第一种方法:导出您的 Andoird .jar 文件,将扩展名更改为 .zip 然后解压缩。然后将 cyperlink .jar 文件的 .jar 扩展名更改为 .zip 然后解压缩。将 cyperlink .jar 文件夹中的源代码复制到 Android 的 .jar 文件夹中。最后,再次 jar 整个文件夹。

    第二种方法(更简单):使用jarjar.jar from Google (thanks to Joe Ward)。

希望这会有所帮助。

【讨论】:

以上是关于适用于 Android 的 Upnp 本机扩展 - AIR的主要内容,如果未能解决你的问题,请参考以下文章

适用于 android 的 Cordova '本机文件选择器'插件不起作用

Sencha Touch 2.1 本机(android)应用程序没有从远程获取 json(它适用于 PC)

将工作 Web 应用程序转变为适用于 Android 的本机 Ionic 应用程序时出现 CORS 问题

适用于 Android 的 Adob​​e 原生扩展以播放声音

websocket 是不是仅适用于浏览器

适用于android的良好ORM工具[关闭]