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

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

【问题讨论】:

    标签: android actionscript-3 actionscript air air-native-extension


    【解决方案1】:

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

    1. 将外部网络链接 .jar 库包含到您的 Android Java 项目中。
    2. 要开始搜索 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;
        }
      
    3. 为您的 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)

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2012-02-17
      • 2016-04-27
      • 2011-12-24
      • 2014-06-06
      • 1970-01-01
      • 2012-10-09
      • 2012-12-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多