2015年4月7日 星期二

Android Studio使用Cling library顯示支援UPnP的裝置


Cling介紹
Cling的四大模組:
Cling Core
實作UPnP 1.0協議, 可以在網路上宣告其服務, 也可用來寫一個control point尋找附近的UPnP裝置並使用其服務. 值得注意的是, Cling 2.x 要求API 15以上, 舊版Cling 1.x 才支援更舊的OS版本.

Cling Support
擴展UPnP服務的模組, 像是media server, renderer, 或是NAT port mapping等等.

Cling Workbench
是一個for桌機的應用程式

Cling MediaRenderer
基於gstreamer的一個獨立的UPnP MediaRenderer.

我們只要list出附近有支援UPnP的裝置,
所以只會用到Cling Core的部分
source code可以參考Github的連結


gradle file裡設定"repositories"跟"dependencies"
可以參考Github上的文件說明

repositories {
     mavenCentral()
     maven {
          url "http://4thline.org/m2"
     }
}

dependencies {
     // Cling
     compile group: 'org.fourthline.cling', name: 'cling-core', version:'2.0.1'
     compile group: 'org.eclipse.jetty', name: 'jetty-server', version:'8.1.12.v20130726'
     compile group: 'org.eclipse.jetty', name: 'jetty-servlet', version:'8.1.12.v20130726'
     compile group: 'org.eclipse.jetty', name: 'jetty-client', version:'8.1.12.v20130726'
}



AndroidManifest.xml的設定
1. 要加入使用權限
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />

2. 聲明我們所使用的service 
<application
     ...
     <service android:name="org.fourthline.cling.android.AndroidUpnpServiceImpl" />
     <service android:name="com.wistron.wimira.testcling.BrowserUpnpService" />
</application>

source code import進來, 上述檔案設定完後, project應該就可以正常build了!
Evernote helps you remember everything and get organized effortlessly. Download Evernote.

沒有留言:

張貼留言

內容回應