Programista po godzinach,
na co dzień fan sportu.
Zestaw narzędzi, który pozwala na pełną personalizację i dostosowanie zegarka do Twoich potrzeb.
W górnej części tarczy możesz przełączać się między różnymi widżetami, które dostarczą Ci kluczowych informacji na temat Twojej aktywności i zdrowia:
EK Tools to aplikacja, która pozwala na pełne spersonalizowanie tarczy zegarka. Aplikacja jest niezbędna do korzystania z wielu funkcji w tarczy z serii EK Watchface.
- Gdy wydarzenie jeszcze nie nastąpiło, na tarczy zegarka zobaczysz, ile dni pozostało do jego daty. - Gdy nadejdzie dzień wydarzenia, zobaczysz pozostały czas (godzinę) oraz jego nazwę, a także dostaniesz powiadomienie w godzinie wydarzenia. - Gdy wydarzenie już minie, na tarczy pojawi się przycisk „SKONFIGURUJ”, który pozwoli Ci na ponowną konfigurację odliczanie.
Jeśli na tarczy zegarka widzisz komunikat „Tools not installed”, musisz w pełni skonfigurować aplikację EK Tools, przełączyć się na inną tarczę, a następnie wrócić do wybranej tarczy EK.
Dzięki poniższemu przykładowemu kodowi, twórcy niestandardowych tarcz mogą w łatwy sposób wyświetlać dane z aplikacji EK bezpośrednio na swoich tarczach, co pozwala na jeszcze większą personalizację i wygodę:
function getColor() {
const mini_app_id = 1086616;
const file_name = "colorA_z25.txt";
let str_result = "";
try {
const fh = openSync({
path: file_name,
flag: O_RDONLY,
options: { appId: mini_app_id },
});
const len = 1024;
let array_buffer = new ArrayBuffer(len);
const bytesRead = readSync({
fd: fh,
buffer: array_buffer,
offset: 0,
length: len
});
closeSync({ fd: fh });
if (bytesRead < len) {
array_buffer = array_buffer.slice(0, bytesRead);
}
str_result = ab2str(array_buffer);
//console.log("os3 color: " + str_result);
} catch (error) {
console.log("Błąd dostępu do hmFS:", error);
}
const new_color = parseInt(str_result, 16);
if (!str_result.includes('x') && !str_result.includes('X')) {
return undefined;
} else {
return new_color;
}
};
function getColor2() {
const mini_app_id = 1086616;
const file_name = "colorB_z25.txt";
let str_result = "";
try {
const fh = openSync({
path: file_name,
flag: O_RDONLY,
options: { appId: mini_app_id },
});
const len = 1024;
let array_buffer = new ArrayBuffer(len);
const bytesRead = readSync({
fd: fh,
buffer: array_buffer,
offset: 0,
length: len
});
closeSync({ fd: fh });
if (bytesRead < len) {
array_buffer = array_buffer.slice(0, bytesRead);
}
str_result = ab2str(array_buffer);
//console.log("os3 color: " + str_result);
} catch (error) {
console.log("Błąd dostępu do hmFS:", error);
}
const new_color = parseInt(str_result, 16);
if (!str_result.includes('x') && !str_result.includes('X')) {
return undefined;
} else {
return new_color;
}
};
function getEventDate() {
const mini_app_id = 1086616;
const file_name = "counter_z25.txt";
let str_result = "";
try {
const fh = openSync({
path: file_name,
flag: O_RDONLY,
options: { appId: mini_app_id },
});
const len = 1024;
let array_buffer = new ArrayBuffer(len);
const bytesRead = readSync({
fd: fh,
buffer: array_buffer,
offset: 0,
length: len
});
closeSync({ fd: fh });
if (bytesRead < len) {
array_buffer = array_buffer.slice(0, bytesRead);
}
str_result = ab2str(array_buffer);
//console.log("os3 color: " + str_result);
} catch (error) {
console.log("Błąd dostępu do hmFS:", error);
}
if (!str_result.includes('/')) {
return undefined;
} else {
return str_result;
}
};
function getEventTime() {
const mini_app_id = 1086616;
const file_name = "countertime_z25.txt";
let str_result = "";
try {
const fh = openSync({
path: file_name,
flag: O_RDONLY,
options: { appId: mini_app_id },
});
const len = 1024;
let array_buffer = new ArrayBuffer(len);
const bytesRead = readSync({
fd: fh,
buffer: array_buffer,
offset: 0,
length: len
});
closeSync({ fd: fh });
if (bytesRead < len) {
array_buffer = array_buffer.slice(0, bytesRead);
}
str_result = ab2str(array_buffer);
//console.log("os3 color: " + str_result);
} catch (error) {
console.log("Błąd dostępu do hmFS:", error);
}
if (!str_result.includes(':')) {
return undefined;
} else {
return str_result;
}
};
function getEventName() {
const mini_app_id = 1086616;
const file_name = "countername_z25.txt";
let str_result = "";
try {
const fh = openSync({
path: file_name,
flag: O_RDONLY,
options: { appId: mini_app_id },
});
const len = 1024;
let array_buffer = new ArrayBuffer(len);
const bytesRead = readSync({
fd: fh,
buffer: array_buffer,
offset: 0,
length: len
});
closeSync({ fd: fh });
if (bytesRead < len) {
array_buffer = array_buffer.slice(0, bytesRead);
}
str_result = ab2str(array_buffer);
//console.log("os3 color: " + str_result);
} catch (error) {
console.log("Błąd dostępu do hmFS:", error);
}
if (str_result.length === 0) {
return undefined;
} else {
return str_result;
}
};
function ab2str(buf) {
return String.fromCharCode.apply(null, new Uint8Array(buf));
};
let is_tools_installed = getColor();
let is_tools_installed2 = getColor2();
if (is_tools_installed == undefined) {
//console.log('No access to hmFS, using default color');
time_hm.setProperty(hmUI.prop.MORE, {
color: 0x457ff8,
});
} else {
time_hm.setProperty(hmUI.prop.MORE, {
color: getColor()
});
}
if (is_tools_installed2 == undefined) {
//console.log('No access to hmFS2, using default color');
time_hm2.setProperty(hmUI.prop.MORE, {
color: 0xff9539,
});
} else {
time_hm2.setProperty(hmUI.prop.MORE, {
color: getColor2()
});
}
let split_date = getEventDate()
let myArray = ''
let counter_day = ''
let counter_month = ''
let counter_year = ''
//console.log(split_date + " date!!");
if (split_date != undefined) {
myArray = split_date.split("/");
counter_day = myArray[2]
counter_month = myArray[1]
counter_year = myArray[0]
} else {
counter_day = time.getDate()
counter_month = time.getMonth()
counter_year = time.getFullYear()
}
const today2 = new Date(time.getFullYear() + '/' + time.getMonth() + '/' + time.getDate());
const event = new Date(counter_year + '/' + counter_month + '/' + counter_day);
const diffTime = Math.abs(event - today2);
const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
event_desc.setProperty(hmUI.prop.TEXT, getEventTime() + ' - ' + getEventName());
days.setProperty(hmUI.prop.TEXT, diffDays);
Zestaw narzędzi dostępny w Zepp Store!
Pod nazwami: EK Watchface, EK Tools oraz Phone Info.
Do odczytu poziomu baterii telefonu wymagana jest instalacja aplikacji AmazSync na Twoim smartfonie.
T-Rex 3, Balance 2, Active 2 (Round), Active 2 (Round) NFC