1

我們一直致力於長時間使用Adobe AIR的Android項目,現在我們需要實現該功能來搜索網絡中的Upnp設備。根據我的理解,在AIR級別上實現此功能是不可能的(請糾正我,如果我錯了),所以需要Android本機擴展。我找不到任何可用的UPNP本地擴展,並決定基於Cling庫Cling UPNP Browser構建一個。我可以將其作爲原生Android應用程序工作,但當我嘗試將其轉換爲AIR本機擴展時,它根本無法工作。有沒有人成功地在Android上實現UPNP - AIR,任何幫助都將不勝感激。Upnp原生擴展爲Android - AIR

回答

2

在花費更多時間尋找其他替代品之後,最後,我使用CyberLink For Java進行了工作。 Cyber​​Link庫的實施非常簡單。對於任何計劃爲Android創建自己的UPNP本機擴展的人來說,以下是構建.jar本機擴展的過程。

  1. 將外部cyberlink .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文件將需要一些作品的Adobe AIR不理解你的外部訊連科技。我們包含的jar文件。當您嘗試調試本機擴展時,您將收到錯誤日誌:...在方法中找不到類'org ... ControlPoint'...。爲了使它工作,你必須將所有的.jar文件合併爲一個。我們有2個選擇這裏:

    • 第1種方法:導出你的Andoird .jar文件,擴展名更改爲.zip,然後解壓縮。然後將cyperlink .jar文件的.jar擴展名更改爲.zip,然後將其解壓縮。將源文件從cyperlink .jar文件夾複製到Android的.jar文件夾中。最後,再次打開整個文件夾。

    • 第二種方法(更簡單):使用jarjar.jar from Google (thanks to Joe Ward)

希望這有助於。