mirror of
https://github.com/openhab/openhab-addons.git
synced 2025-01-10 15:11:59 +01:00
[androidtv] Fixes GoogleTV Login Error (#15453)
* Updates protocol examples * Adjusts flag based on received data Signed-off-by: Ben Rosenblum <rosenblumb@gmail.com>
This commit is contained in:
parent
6a31dfaebe
commit
2a0971ee0a
@ -60,33 +60,49 @@ public class GoogleTVMessageParser {
|
||||
} else if (msg.startsWith(DELIMITER_0A)) {
|
||||
// First message on connection from GTV
|
||||
//
|
||||
// 0a 5b08 ff 041256 0a 11 534849454c4420416e64726f6964205456 12 06 4e5649444941 18 01 22 02 3131 2a
|
||||
// ---------------------LEN-SHIELD Android TV--------------------LEN-NVIDIA---------LEN---LEN-Android
|
||||
// 0a 5b 08 ff 04 12 56 0a 11 534849454c4420416e64726f6964205456 12 06 4e5649444941 18 01 22 02 3131 2a
|
||||
// ---LEN------------LEN---LEN-SHIELD Android TV--------------------LEN-NVIDIA---------LEN---LEN-Android
|
||||
// 24 636f6d2e676f6f676c652e616e64726f69642e74762e72656d6f74652e73657276696365 32
|
||||
// LEN-com.google.android.tv.remote.service
|
||||
// 0d 352e322e343733323534313333
|
||||
// LEN-5.2.473254133
|
||||
//
|
||||
// 0a 5308 ff 04124e 0a 0c 42524156494120344b204742 12 04 536f6e79 18 01 22 01 39 2a
|
||||
// ---------------------LEN-BRAVIA 4K GB---------------LEN-Sony-------LEN---LEN-Android Version
|
||||
// 0a 53 08 ff 04 12 4e 0a 0c 42524156494120344b204742 12 04 536f6e79 18 01 22 01 39 2a
|
||||
// ---LEN------------LEN---LEN-BRAVIA 4K GB---------------LEN-Sony-------LEN---LEN-Android Version
|
||||
// 24 636f6d2e676f6f676c652e616e64726f69642e74762e72656d6f74652e73657276696365 32
|
||||
// 0d 352e322e343733323534313333
|
||||
//
|
||||
// 0a 5408 ff 04124f 0a 0a 4368726f6d6563617374 12 06 476f6f676c65 18 01 22 02 3132 2a
|
||||
// ---------------------LEN-Chromecast-------------LEN-Google---------LEN---LEN-Android Version
|
||||
// 0a 54 08 ff 04 12 4f 0a 0a 4368726f6d6563617374 12 06 476f6f676c65 18 01 22 02 3132 2a
|
||||
// ---LEN------------LEN---LEN-Chromecast-------------LEN-Google---------LEN---LEN-Android Version
|
||||
// 24 636f6d2e676f6f676c652e616e64726f69642e74762e72656d6f74652e73657276696365 32
|
||||
// 0d 352e322e343733323534313333
|
||||
//
|
||||
// 0a 5708 ff 041252 0a 0d 4368726f6d6563617374204844 12 06 476f6f676c65 18 01 22 02 3132 2a
|
||||
// ---------------------LEN-Chromecast HD----------------LEN-Google---------LEN---LEN-Android Version
|
||||
// 0a 57 08 ff 04 12 52 0a 0d 4368726f6d6563617374204844 12 06 476f6f676c65 18 01 22 02 3132 2a
|
||||
// ---LEN------------LEN---LEN-Chromecast HD----------------LEN-Google---------LEN---LEN-Android Version
|
||||
// 24 636f6d2e676f6f676c652e616e64726f69642e74762e72656d6f74652e73657276696365 32
|
||||
// 0d352e322e343733323534313333
|
||||
//
|
||||
// 0a 55 08 ef 04 12 50 0a 09 535754562d32304145 12 08 736b79776f727468 18 01 22 02 3130 2a
|
||||
// ---LEN------------LEN---LEN-SWTV-20AE------------LEN-skyworth-----------LEN---LEN-Android
|
||||
// 24 636f6d2e676f6f676c652e616e64726f69642e74762e72656d6f74652e73657276696365 32
|
||||
// LEN-com.google.android.tv.remote.service
|
||||
// 0d 352e322e343733323534313333
|
||||
// LEN-5.2.473254133
|
||||
//
|
||||
// 0a 5b 08 fd 04 12 56 0a 11 534849454c4420416e64726f6964205456 12 06 4e5649444941 18 01 22 02 3131 2a
|
||||
// ---LEN------------LEN---LEN-SHIELD Android TV--------------------LEN-NVIDIA---------LEN---LEN-Android
|
||||
// 24 636f6d2e676f6f676c652e616e64726f69642e74762e72656d6f74652e73657276696365 32
|
||||
// LEN-com.google.android.tv.remote.service
|
||||
// 0d 352e322e343733323534313333
|
||||
// LEN-5.2.473254133
|
||||
|
||||
if (callback.getLoggedIn()) {
|
||||
logger.warn("{} - Unexpected Login Message: {}", thingId, msg);
|
||||
} else {
|
||||
String flag = "" + charArray[6] + charArray[7];
|
||||
logger.trace("{} - Encoding Flag Data: {}", thingId, flag);
|
||||
callback.sendCommand(
|
||||
new GoogleTVCommand(GoogleTVRequest.encodeMessage(GoogleTVRequest.loginRequest(4))));
|
||||
new GoogleTVCommand(GoogleTVRequest.encodeMessage(GoogleTVRequest.loginRequest(4, flag))));
|
||||
}
|
||||
|
||||
String st = "";
|
||||
|
@ -66,6 +66,10 @@ public class GoogleTVRequest {
|
||||
}
|
||||
|
||||
public static String loginRequest(int messageId) {
|
||||
return loginRequest(messageId, "");
|
||||
}
|
||||
|
||||
public static String loginRequest(int messageId, String data) {
|
||||
String message = "";
|
||||
if (messageId == 1) {
|
||||
// Send app and device name
|
||||
@ -85,8 +89,8 @@ public class GoogleTVRequest {
|
||||
// 080210c801f201 08 0a 04 08031006 1001
|
||||
message = "080210c801f201080a04080310061001";
|
||||
} else if (messageId == 4) {
|
||||
// 0a41087e123d0a 08 534d2d4739393855 12 07 73616d73756e67 18 01 22 02 3133 2a
|
||||
// ---------------LEN--SM-G998U----------LEN--samsung---------
|
||||
// 0a 41 08 7e 12 3d 0a 08 534d2d4739393855 12 07 73616d73756e67 18 01 22 02 3133 2a
|
||||
// ---LEN---------LEN---LEN--SM-G998U----------LEN--samsung---------
|
||||
// 19 636f6d2e676f6f676c652e616e64726f69642e766964656f73 32
|
||||
// LEN-com.google.android.videos----------------------------
|
||||
// 07 342e33382e3138
|
||||
@ -94,8 +98,8 @@ public class GoogleTVRequest {
|
||||
// message =
|
||||
// "0a41087e123d0a08534d2d4739393855120773616d73756e671801220231332a19636f6d2e676f6f676c652e616e64726f69642e766964656f733207342e33382e3138";
|
||||
|
||||
// 0a5708fe0412520a 08 534d2d4739393855 12 07 73616d73756e67 18 01 22 02 3133 2a
|
||||
// -----------------LEN--SM-G998U----------LEN--samsung---------
|
||||
// 0a 57 08 fe 04 12 52 0a 08 534d2d4739393855 12 07 73616d73756e67 18 01 22 02 3133 2a
|
||||
// ---LEN------------LEN---LEN--SM-G998U----------LEN--samsung---------
|
||||
// 19 636f6d2e676f6f676c652e616e64726f69642e766964656f73 32
|
||||
// LEN-com.google.android.videos---------------------------
|
||||
// 1c 342e33392e3538342e3532393538383538332e372d72656c65617365
|
||||
@ -103,13 +107,21 @@ public class GoogleTVRequest {
|
||||
// message =
|
||||
// "0a5708fe0412520a08534d2d4739393855120773616d73756e671801220231332a19636f6d2e676f6f676c652e616e64726f69642e766964656f73321c342e33392e3538342e3532393538383538332e372d72656c65617365";
|
||||
|
||||
// 0a5708fe0412520a 08 534d2d4739393855 12 07 73616d73756e67 18 01 22 02 3133 2a
|
||||
// -----------------LEN--SM-G998U----------LEN--samsung---------
|
||||
// 19 636f6d2e676f6f676c652e616e64726f69642e766964656f73 32
|
||||
// 0a 3b 08 ee 04 12 36 0a 06 6950686f6e65 12 05 4170706c65 18 02 22 04 31362e36 2a
|
||||
// ---LEN------------LEN---LEN-iPhone---------LEN-Apple--------------LEN-16.6
|
||||
// 11 636f6d2e676f6f676c652e4d6f76696573 32 0a 332e31332e3030303033
|
||||
// LEN-com.google.Movies--------------------LEN-3.13.00003
|
||||
|
||||
// 0a 57 08 fe 04 12 52 0a 08 534d2d4739393855 12 07 73616d73756e67 18 01 22 02 3133 2a
|
||||
// ---LEN------------LEN---LEN--SM-G998U----------LEN--samsung---------
|
||||
// 19 636f6d2e676f-6f676c652e616e64726f69642e766964656f73 32
|
||||
// LEN-com.google.android.videos---------------------------
|
||||
// 1c 342e33392e3634342e3533343836353739392e332d72656c65617365
|
||||
// LEN-4.39.644.534865799.3-release
|
||||
message = "0a5708fe0412520a08534d2d4739393855120773616d73756e671801220231332a19636f6d2e676f6f676c652e616e64726f69642e766964656f73321c342e33392e3634342e3533343836353739392e332d72656c65617365";
|
||||
int dataInt = Integer.parseInt(data, 16) - 1;
|
||||
String updatedData = Integer.toHexString(dataInt);
|
||||
message = "0a5708" + updatedData
|
||||
+ "0412520a08534d2d4739393855120773616d73756e671801220231332a19636f6d2e676f6f676c652e616e64726f69642e766964656f73321c342e33392e3634342e3533343836353739392e332d72656c65617365";
|
||||
} else if (messageId == 5) {
|
||||
// Unknown. Sent after "1200" received
|
||||
message = "1202087e";
|
||||
|
Loading…
Reference in New Issue
Block a user