Connect SDK 開源框架(100%開源)
Beam Photos, Videos, Audio, and YouTube to the Big Screen
Beam Web Apps to the Big Screen
PROMOTE YOUR TV APP
相關特性
文檔:http://connectsdk.com/SupportedFeatures/
相關資料
https://github.com/ConnectSDK/Connect-SDK-Android-API-Sampler
https://github.com/ConnectSDK/Connect-SDK-Android-Core
http://connectsdk.com/docs/1-6-0/android/resuming-apps/
Connect SDK Android Api 相關文檔: http://connectsdk.com/apis/android/
導入相關
implementation 'com.connectsdk:connect-sdk-android:1.6.0' // https://github.com/ConnectSDK/Connect-SDK-Android-Core
// 下面兩個庫,無法使用 Android Studio導入,
// 可以到這裏下載 https://github.com/ConnectSDK/Connect-SDK-Android-Core/tree/master/libs
implementation "org.java-websocket:Java-WebSocket:1.4.0" // https://github.com/TooTallNate/Java-WebSocket
// https://github.com/jmdns/jmdns,
AndroidManifest.xml 導入一些配置
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<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.WRITE_EXTERNAL_STORAGE" />
<application
... ...
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
... ...
</application>
掃描設備
參考API文檔:http://connectsdk.com/apis/1-6-0/android/discoverymanager/
mDiscoveryManager = DiscoveryManager.getInstance();
// mDiscoveryManager.setCapabilityFilters();
mDiscoveryManager.registerDefaultDeviceTypes();
// 設置配對
mDiscoveryManager.setPairingLevel(DiscoveryManager.PairingLevel.ON);
// mDiscoveryManager.setPairingLevel(DiscoveryManager.PairingLevel.OFF);
mDiscoveryManager.addListener(discoveryManagerListener);
mDiscoveryManager.start(); // Start scanning for devices on the local network.
// mDiscoveryManager.stop(); // Stop scanning for devices.
// mDiscoveryManager.getAllDevices();
// 掃碼設備的回調
private DiscoveryManagerListener discoveryManagerListener = new DiscoveryManagerListener() {
@Override
public void onDeviceAdded(DiscoveryManager manager, ConnectableDevice device) {
}
@Override
public void onDeviceUpdated(DiscoveryManager manager, ConnectableDevice device) {
}
@Override
public void onDeviceRemoved(DiscoveryManager manager, ConnectableDevice device) {
}
@Override
public void onDiscoveryFailed(DiscoveryManager manager, ServiceCommandError error) {
}
};
連接設備
參考API文檔:http://connectsdk.com/apis/1-6-0/android/connectabledevice/
ConnectableDevice connDevice = ... ...;
connDevice.addListener(deviceListener);
connDevice.setPairingType(null);
connDevice.connect(); // 連接
connDevice.disconnect(); // 斷開連接
// 獲取一些相關屬性
connDevice.getId();
connDevice.getIpAddress();
// 連接設備的回調
private ConnectableDeviceListener deviceListener = new ConnectableDeviceListener() {
@Override
public void onDeviceReady(ConnectableDevice device) {
}
@Override
public void onDeviceDisconnected(ConnectableDevice device) {
}
@Override
public void onPairingRequired(
ConnectableDevice device, DeviceService service, DeviceService.PairingType pairingType) {
}
@Override
public void onCapabilityUpdated(
ConnectableDevice device, List<String> added, List<String> removed) {
}
// 連接失敗
@Override
public void onConnectionFailed(ConnectableDevice device, ServiceCommandError error) {
}
};
按鍵操控
參考API文檔:http://connectsdk.com/apis/1-6-0/android/keycontrol/
KeyControl keyControl;
// 各種按鍵操作
keyControl.back(null);
keyControl.ok(null);
keyControl.down(null);
keyControl.up(null);
keyControl.left(null);
keyControl.right(null);
keyControl.home(null);
keyControl.sendKeyCode(KeyCode.xxx, null);
// 自定義按鍵需要支持 (暫時未找到),比如我們的 菜單,關機菜單 等支持
// 因爲代碼是開源,到時候可以直接改改源碼試試
// 回調支持
new ResponseListener<Object>() {
@Override
public void onSuccess(Object response) {
}
@Override
public void onError(ServiceCommandError error) {
}
}
文本輸入
參考API文檔:http://connectsdk.com/apis/1-6-0/android/textinputcontrol/
TextInputControl
sendText (String input) // 發送按鍵
sendEnter () // 回車
sendDelete () // 刪除
應用相關
參考API文檔:http://connectsdk.com/apis/1-6-0/android/launcher/
參考文檔:http://connectsdk.com/docs/1-2/android/launch-tv-app/
音量控制
參考API文檔:http://connectsdk.com/apis/1-6-0/android/mediacontrol/
VolumeControl mVolumeControl = ... ...
mVolumeControl.setVolume(float volume, ResponseListener<Object> listener)
mVolumeControl.volumeDown(null);
mVolumeControl.volumeUp(null);
媒體控制
參考API文檔:http://connectsdk.com/apis/1-6-0/android/mediacontrol/
mMediaControl.seek(postion, new ResponseListener<Object>() {
@Override
public void onSuccess(Object response) {
}
@Override
public void onError(ServiceCommandError error) {
}
});
mMediaControl.stop(null);
mMediaControl.pause(null);
mMediaControl.play(null);
mMediaControl.next(null);