Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android-AIR的Upnp本机扩展_Android_Actionscript 3_Actionscript_Air_Air Native Extension - Fatal编程技术网

Android-AIR的Upnp本机扩展

Android-AIR的Upnp本机扩展,android,actionscript-3,actionscript,air,air-native-extension,Android,Actionscript 3,Actionscript,Air,Air Native Extension,我们使用AdobeAIR开发Android项目已经有很长一段时间了,现在我们需要实现该功能来搜索网络中的Upnp设备。据我所知,这是不可能实现这一功能的空气水平(请纠正我,如果我错了),所以Android本机扩展是必需的。我找不到任何可用的UPNP本机扩展,决定基于Cling库构建一个。我可以让它作为本机Android应用程序工作,但当我试图将其转换为AIR本机扩展时,它根本不起作用。如果有人成功地在Android-AIR上实现了UPNP,我们将非常感谢您的帮助。在花了更多时间搜索其他替代方案后

我们使用AdobeAIR开发Android项目已经有很长一段时间了,现在我们需要实现该功能来搜索网络中的Upnp设备。据我所知,这是不可能实现这一功能的空气水平(请纠正我,如果我错了),所以Android本机扩展是必需的。我找不到任何可用的UPNP本机扩展,决定基于Cling库构建一个。我可以让它作为本机Android应用程序工作,但当我试图将其转换为AIR本机扩展时,它根本不起作用。如果有人成功地在Android-AIR上实现了UPNP,我们将非常感谢您的帮助。

在花了更多时间搜索其他替代方案后,我终于用Android-AIR实现了UPNP。CyberLink图书馆的实施非常直接。对于任何计划为Android创建自己的UPNP本机扩展的人,下面是构建.jar本机扩展的过程

  • 将外部cyberlink.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;
      }
    
    newsearchforupnptask().execute(“空参数”)//您可以指定自己的参数。。。
    私有类SearchingForUpnpTask扩展了AsyncTask{
    受保护的DeviceList doInBackground(字符串…参数){
    ControlPoint ctrPoint=新的ControlPoint();
    ctrPoint.start(“upnp:rootdevice”);
    DeviceList devList=ctrPoint.getDeviceList();
    int nRootDevs=devList.size();
    对于(int n=0;n
  • 为您的Android编译.jar文件需要一些工作,因为Adobe AIR不理解我们包含的外部cyberlink.jar文件。当您尝试调试本机扩展时,您将收到错误日志:…在方法中找不到类“org…ControlPoint”…。为了使其工作,您必须我们需要将所有的.jar文件合并为一个文件。这里有两个选项:

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

    • 第二种方法(更简单):使用

  • 希望这有帮助