Bu makale EloView Home SDK 6.23.14 için geçerlidir. Geliştiricilerin, tüm yeni geliştirme projeleri ve gelecekteki entegrasyonlar için EloView Home SDK 6.25.520'yi kullanmaları teşvik edilmektedir.
EloView Home SDK 6.25.520'de nelerin yeni olduğunu öğrenmek için tıklayın.
EloView Home SDK 6.25.520 Referans Kılavuzu için tıklayın.
EloView Home SDK 6.23.14
Desteklenen Platformlar: Android 12 ve Android 14 Elo cihazları, Backpack 4 (Standart/Değer), I-Series 4 (Standart/Değer), I-Series Standart, M50, M60 Pay, M100, ve 7-Inch Pay dahil.
Tam Referans (Bilgi Tabanı + SDK Javadoc)
API'ler, keşfi kolaylaştırmak ve uygulamayı hızlandırmak amacıyla işlevsel sınıfa (Sistem, Ağ, Paket vb.) göre organize edilmiştir.
Küresel En İyi Uygulamalar (KB'den)
-
Herhangi bir API çağrısından önce her zaman hizmete bağlanın.
onServiceConnected()alınana kadar yöntemleri çağırmayın. -
Cihaz politikası yerel ayarları geçersiz kılabilir.
Bu, özellikle zaman, saat dilimi, USB, kiosk modu ve uygulama kurulumu için geçerlidir. -
Üretimde zaman senkronizasyonu için NTP kullanın.
Test dışında manuel zaman yapılandırmadan kaçının. -
Sıfırlama davranışını anlayın.
-
Kurumsal Sıfırlama Elo yapılandırmasını ve kayıt durumunu temizler.
-
Aygıt Sıfırlama, tüm kullanıcı verilerini siler ve cihazı kutudan çıkma durumuna döner.
-
-
Her API çağrısının sonucunu kaydedin.
Bu, sorun giderme ve yükseltme için kritik öneme sahiptir.
❗ Önemli Kullanım Notları
Bazı SDK API'leri belirli Android izinleri gerektirir ve cihazın EloView modunda mı yoksa Android Ana modunda mı olduğuna bağlı olarak farklı davranabilir. Cihaz politikası zorunlu kılınması, yerel olarak uygulanan ayarları geçersiz kılabilir. Geliştiriciler, üretim uygulamalarında API'leri çağırmadan önce cihaz modunu ve izin durumunu doğrulamalıdır.
EloView Home SDK, hizmete başarılı bir şekilde bağlanmadan hiçbir API çağrısının gerçekleştirilemeyeceği, hizmet tabanlı bir Android SDK’dır. Yöntemler şunları yapabilir:
- Hizmet henüz bağlanmamışsa
- Cihaz uyumlu bir EloView durumunda değilse
- Politika kısıtlamaları işlemi engelliyorsa
Bu kılavuz desteklenen ve yaygın olarak kullanılan desenlere odaklanmaktadır. Bu, her Android iznini, yaşam döngüsü kenar durumunu veya ham SDK Javadoc'da belgelenen iç geri dönüş durumunu sıralamaz. Standart Android hizmet yaşam döngüsü işleme ve hata kontrolü, üretim uygulamalarında uygulanmalıdır.
Ortak Gerçek Dünya Senaryoları (KB'den)
Senaryo: Cihaz kaydı sonrası saat dilimi yanlış
system.setNtpEnabled(true);
system.setNtpServer("time.aws.com");
system.setTimeZone("US/Central");
system.syncTimeNow();
// Doğrulayın
String tz = system.getTimeZone();
Log.d(TAG, "Timezone=" + tz);
İpucu: Reboot sonrası saat dilimi geri dönüyorsa, otomatik Android saat diliminin etkin olduğundan ve cihaz politikasının farklı bir bölgeyi yeniden uygulamadığından emin olun.
Senaryo: Tek uygulama kiosk modunu güvenli bir şekilde yapılandırın
pkg.setKioskApp("com.example.kiosk");
pkg.setKioskModeEnabled(true);
pkg.launchApp("com.example.kiosk");
Uyarı: Üretimde kiosk modunu etkinleştirmeden önce her zaman bir idari kaçış yolunu doğrulayın.
Hizmet Bağlama Şablonu (KB'den)
eloView.bindService(context, callback, accessToken);
// callback.onServiceConnected() içinde SDK API'lerini çağırmak güvenlidir
eloView.unbindService(context);
Önemli not: bindService() ve unbindService() değer döndürmez. SDK API'leri yalnızca onServiceConnected() çağrıldıktan sonra çağrılmalıdır.
Çekirdek / Hizmet Bağlama API'leri
EloView
EloView sınıfı aşağıdaki işlemleri sağlar:
- Cihaz çevrimdışı veya bir hesaba kaydedilmediğinde, setOfflinePlayContent() yöntemi kullanarak EloView Kontrol modunda oynatılacak içeriği ayarlayın.
- EloView Kontrol modunda şu anda ayarlanmış içeriğin türünü (APK veya WebView) ve adını almak için getPlayContent() yöntemini kullanın.
- Yapılandırılmış içeriğin güncel oynatma durumunu EloView Kontrol modunda almak için getPlayContentStatus() yöntemini kullanın.
- Cihazın şu anda EloView Cloud'a (çevrimiçi veya çevrimdışı) bağlı olup olmadığını kontrol etmek için getDeviceCloudStatus() yöntemini kullanın.
- Elo Hızlı Ayarlar ve Android Ana Modunda Wi-Fi'yi açıp kapamak için toggleWifi() yöntemini kullanın.
- Elo Hızlı Ayarlar ve Android Ana Modunda Bluetooth'u açıp kapatmak için toggleBT() yöntemini kullanın.
bindService
public void bindService(android.content.Context context, ServiceConnectionCallback callback, java.lang.String accessToken)
Bu yöntem, EloView hizmetini uygulamaya bağlar. EloView API'lerini çağırmadan önce bunu yapmalısınız.
Parametreler
- context – EloView API'lerinin kullanıldığı bağlam.
try {
// TODO: ensure service is bound before calling SDK APIs
Object result = sdk.bindService(context, callback, "accessToken");
Log.d(TAG, "OK: bindService result=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: bindService", e);
}
unbindService
public void unbindService(android.content.Context context)
Bu yöntem, hizmetin uygulamadan ayrılmasını sağlar. Kaynakları temizlerken hizmetten ayrılmak için bu yöntemi kullanın.
Parametreler
- context – Bağlam
Örnek
try {
// TODO: ensure service is bound before calling SDK APIs
Object result = sdk.unbindService(context);
Log.d(TAG, "OK: unbindService result=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: unbindService", e);
}
setOfflinePlayContent
public java.lang.String setOfflinePlayContent(java.lang.String packageName)
Bu yöntem, cihaz çevrimdışı veya bir hesaba kaydedilmediğinde, EloView Kontrol modunda içerik ayarlamak için kullanılır. Cihaz çevrimdışı olduğunda ve içerik EloView üzerinden ayarlanmışsa, bu API aracılığıyla ayarlanan içeriği geçersiz kılacaktır.
Parametreler
- packageName – Cihazda varsayılan içerik olarak ayarlanacak paket.
Örnek
try {
// TODO: ensure service is bound before calling SDK APIs
Object result = sdk.setOfflinePlayContent("packageName");
Log.d(TAG, "OK: setOfflinePlayContent result=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: setOfflinePlayContent", e);
}
getPlayContent
public java.lang.String getPlayContent()
Bu yöntem, cihazda ayarlanan içeriğin türünü ve adını döndürür. Bu yöntem sadece EloView Kontrol modunda çalışır.
Örnek
try {
// TODO: ensure service is bound before calling SDK APIs
Object result = sdk.getPlayContent();
Log.d(TAG, "OK: getPlayContent result=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: getPlayContent", e);
}
getPlayContentStatus
public java.lang.String getPlayContentStatus()
Bu yöntem, Kontrol modundaki cihazda oynatılan içeriğin durumunu döndürür. Durum aşağıdaki dizelerden biri olabilir:
YET_TO_DOWNLOAD, DOWNLOADING, DOWNLOADED, INSTALLING, INSTALLED, DOWNLOAD_FAILED, INSTALL_FAILED, UNKNOWN_STATUS
Örnek
try {
// TODO: ensure service is bound before calling SDK APIs
Object result = sdk.getPlayContentStatus();
Log.d(TAG, "OK: getPlayContentStatus result=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: getPlayContentStatus", e);
}
getDeviceCloudStatus
public java.lang.String getDeviceCloudStatus()
Bu yöntem, cihazın çevrimiçi veya çevrimdışı durumunu döndürür. Durum aşağıdaki dizelerden biri olabilir: "Çevrimiçi", "Çevrimdışı", "Bağlanıyor", "Yeniden Bağlanıyor", "Çevrimdışı (Sağlamlaştırılmamış)".
Örnek
try {
// TODO: ensure service is bound before calling SDK APIs
Object result = sdk.getDeviceCloudStatus();
Log.d(TAG, "OK: getDeviceCloudStatus result=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: getDeviceCloudStatus", e);
}
toggleWifi
void toggleWifi(boolean isEnableWifi)
Cihazda Wi-Fi'yi açmak veya kapatmak için kullanılır. Bu, hem EloView modunda hem de Android Ana modunda geçerlidir.
Parametreler
- isEnableWifi – Hızlı Ayarlar'da WiFi'nin açılıp açılmayacağını belirten Boolean.
Örnek
try {
// TODO: ensure service is bound before calling SDK APIs
Object result = sdk.toggleWifi(true);
Log.d(TAG, "OK: toggleWifi result=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: toggleWifi", e);
}
switchToAndroidHomeMode
void switchToAndroidHomeMode() void switchToAndroidHomeMode(boolean isRebootNeeded, boolean isAndroidHomeMode)
Bu yöntem EloView modundan Android Ana moduna geçmek için kullanılır. Bu, iki Boolean parametreyi kabul eder. EloView moduna geri dönmenin bir yolu yoktur, bu nedenle dikkatli kullanın.
Parametreler
- **isRebootNeeded**: cihaz mod değişikliğini uygulamak için yeniden başlatılacak mıdır.
Örnek
try {
// TODO: ensure service is bound before calling SDK APIs
Object result = sdk.switchToAndroidHomeMode(true, true);
Log.d(TAG, "OK: switchToAndroidHomeMode result=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: switchToAndroidHomeMode", e);
}
toggleBT
public int toggleBT(boolean isEnableBT)
Bu yöntem, EloView modunda Hızlı Ayarlar'da Bluetooth'u açmak veya kapatmak için kullanılır. Android Ana modunda da kullanılabilir.
Parametreler
- isEnableBT – Hızlı Ayarlar'da Bluetooth'un açılıp açılmayacağını belirten Boolean.
Örnek
try {
// TODO: ensure service is bound before calling SDK APIs
Object result = sdk.toggleBT(true);
Log.d(TAG, "OK: toggleBT result=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: toggleBT", e);
}
Hesap API'leri
AccountManager
AccountManager sınıfı aşağıdaki işlemleri sağlar:
1. Kullanıcı tarafından sağlanan kimlik bilgilerine (emailId/parola veya clientId/secretKey) dayanarak bir EloSunucusundan bir Kimlik Doğrulama Jetonu sağlar.
2. Verilen Kimlik Doğrulama Jetonu'nun geçerli olup olmadığını veya süresinin dolup dolmadığını doğrular. Kimlik doğrulama jetonu ya EloView sunucusundan alınan jeton olabilir ya da Elo Destek ekibi tarafından sağlanan çevrimdışı JWT jetonu olabilir. (Çevrimdışı jeton, uygulamanızın paket adı kullanılarak oluşturulur ve yalnızca oluşturulduğu paketle kullanılabilir.)
3. Tüm API'ler çalışmak için bir çevrimdışı jeton gerektirir ve çevrimiçi bir jetonla çalışmaz. Tek istisna OTA API'leridir. OTA API'ler, EloView sunucusundan OTA uygulanırken çevrimiçi jeton gerektirir. Bir özel sunucu URL'si veya cihazdaki yerel bir dosyadan OTA uygulamak için, çevrimdışı jeton kullanılabilir.
Örneğin, bir Kimlik Doğrulama Jetonu almak için:
1. EmailId ve parolayı kullanarak getEloAccessToken çağırın. 2. clientId ve secretKey ile getEloOAuthToken çağırın. Başarılı bir kimlik doğrulama durumunda, bu yöntem bir jeton döndürecektir. 3. Çevrimdışı JWT jetonu için Elo Destek ekibiyle iletişime geçin.
Sunucudan veya destek ekibinden alınan jeton, verifyEloToken yöntemi kullanılarak doğrulanır.
Bu AccountManager API'leri tarafından kullanılan yayın alıcılarını unregisterAccountManagerListener yöntemi ile onPause ve onDestroy yöntemlerinde kaydetmeyi unutmayın. Bu, sızıntıların önlenmesini sağlar.
getProperty
public static java.lang.String getProperty()
Örnek
try {
// TODO: ensure service is bound before calling SDK APIs
Object result = sdk.getProperty();
Log.d(TAG, "OK: getProperty result=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: getProperty", e);
}
setProperty
public void setProperty(java.lang.String property)
Örnek
try {
// TODO: ensure service is bound before calling SDK APIs
Object result = sdk.setProperty("property");
Log.d(TAG, "OK: setProperty result=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: setProperty", e);
}
getClientId
public static java.lang.String getClientId()
Örnek
try {
// TODO: ensure service is bound before calling SDK APIs
Object result = sdk.getClientId();
Log.d(TAG, "OK: getClientId result=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: getClientId", e);
}
getBaseUri
public static android.net.Uri getBaseUri()
Örnek
try {
// TODO: ensure service is bound before calling SDK APIs
Object result = sdk.getBaseUri();
Log.d(TAG, "OK: getBaseUri result=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: getBaseUri", e);
}
getEloAccessToken
public void getEloAccessToken(android.content.Context context, java.lang.String userEmail, java.lang.String password, android.os.Handler handler)
Bu yöntem, Elo sunucusundan bir erişim jetonu almak için kullanılır.
Parametreler
- context – Çağıran sınıfın (Activity veya Service) bir Context nesnesi.
Örnek
try {
// TODO: ensure service is bound before calling SDK APIs
Object result = sdk.getEloAccessToken(context, "userEmail", "password", handler);
Log.d(TAG, "OK: getEloAccessToken result=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: getEloAccessToken", e);
}
configureOAuthHostedUI
public void configureOAuthHostedUI(android.app.Activity activity, android.os.Handler handler)
Bu yöntem, OAuth Hosted UI'yi başlatmak için kullanılır.
Parametreler
- activity – Çağıran sınıfın Activity örneği.
Örnek
try {
// TODO: ensure service is bound before calling SDK APIs
Object result = sdk.configureOAuthHostedUI(activity, handler);
Log.d(TAG, "OK: configureOAuthHostedUI result=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: configureOAuthHostedUI", e);
}
stopOAuth
public void stopOAuth()
stopOAuth'ı etkinliklerin onStop() geçersiz kılma yönteminde çağırın.
Örnek
try {
// TODO: ensure service is bound before calling SDK APIs
Object result = sdk.stopOAuth();
Log.d(TAG, "OK: stopOAuth result=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: stopOAuth", e);
}
destroyOAuth
public void destroyOAuth()
destroyOAuth'ı etkinliklerin onStop() geçersiz kılma yönteminde çağırın.
Örnek
try {
// TODO: ensure service is bound before calling SDK APIs
Object result = sdk.destroyOAuth();
Log.d(TAG, "OK: destroyOAuth result=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: destroyOAuth", e);
}
logoutOAuth
public void logoutOAuth()
logoutOAuth'ı mevcut oturumun sonlanması için çağırın.
Örnek
try {
// TODO: ensure service is bound before calling SDK APIs
Object result = sdk.logoutOAuth();
Log.d(TAG, "OK: logoutOAuth result=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: logoutOAuth", e);
}
verifyEloToken
public void verifyEloToken(android.content.Context context, java.lang.String accessToken, android.os.Handler handler)
Bu işlev, Elo sunucusuna verilen jetonu doğrulamasını ister. Başarılı bir doğrulama durumunda, işleyici TOKEN_VERIFY_SUCCESS türünde bir mesaj alır. Başarısız olursa, TOKEN_VERIFY_FAIL alınır.
Parametreler
- context – Çağıran sınıfın (Activity veya Service) bir Context nesnesi.
Örnek
try {
// TODO: ensure service is bound before calling SDK APIs
Object result = sdk.verifyEloToken(context, "accessToken", handler);
Log.d(TAG, "OK: verifyEloToken result=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: verifyEloToken", e);
}
getEloOAuthToken
public void getEloOAuthToken(android.content.Context context, java.lang.String clientID, java.lang.String secret, android.os.Handler handler)
Bu yöntem, EloView Portal'dan yeni bir OAuth jetonu istemek için kullanılır. Başarılı bir kimlik doğrulama durumunda, bir jeton cihaza gönderilecektir. Bu jeton verildiğinde 24 saat süreyle geçerli olacaktır. Jetonun süresi dolduğunda, jetonu doğrulama ve API'leri çağırma girişimleri TOKEN_VERIFY_FAIL yanıtı alacaktır. Jeton asla temin edilmedi veya alınmadıysa, aynı durum geçerlidir.
Başarılı olursa, işleyici OAUTH_TOKEN_VALID türünde bir mesaj alacaktır ve yanıt olarak bir JWT jetonu olacaktır. Aşağıda başarılı cevap örneği verilmiştir:
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IlJQTSJ9.eyJ1ZW1haWwiOiJwcmF0YXBlbG8rUHJvZEBnbWFpbC5jb20iLCJvdGl0bGUiOiJwcmF0YXBlbG8rUHJvZEBnbWFpbC5jb20iLCJjYXAiOnsiY3JjIjoiSDIvb2RnIiwicGVybSI6ImZmZmZmZmYwMCJ9LCJpYXQiOjE1MjUxMTc4NDgsIm5iZiI6MTUyNTExNzg0OCwiZXhwIjoxNTI1MjA0MjQ4LCJpc3MiOiIxNTAyIiwic3ViIjoiZWVhNDRkY2JkMjU5YzQyOWY4NTA3YWZhNTQyY2Q3M2YiLCJqdGkiOiJ2ZE14N1ppUGVnWT0ifQ.b2e-F1mVh0ummkBJk3m8pT2qSCceRxuS_A9GAKtYBeo"
Kimlik doğrulama başarısız olursa, hatalı clientID veya secretID nedeniyle işleyici OAUTH_TOKEN_INVALID türünde bir mesaj alacaktır.
Parametreler
- context – Çağıran sınıfın (Activity veya Service) bir Context nesnesi.
Örnek
try {
// TODO: ensure service is bound before calling SDK APIs
Object result = sdk.getEloOAuthToken(context, "clientID", "secret", handler);
Log.d(TAG, "OK: getEloOAuthToken result=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: getEloOAuthToken", e);
}
getEloOAuthToken(En)
public void getEloOAuthToken(android.content.Context context, java.lang.String clientID, java.lang.String secret, android.os.Handler handler)
getEloOAuthToken() ile aşağıdaki örnekler ile jeton edinebilirsiniz:
- Abone çağır.
- Hedef cihaza gönderilecek URL.
- Kullanıcı adı ve parolayı içeren bir istek gönderin.
configureOAuthHostedUI
public void configureOAuthHostedUI(android.app.Activity activity, android.os.Handler handler)
Bu yöntem, OAuth Hosted UI'yi başlatmak için kullanılır.
Örnek
try {
// TODO: ensure service is bound before calling SDK APIs
Object result = sdk.configureOAuthHostedUI(activity, handler);
Log.d(TAG, "OK: configureOAuthHostedUI result=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: configureOAuthHostedUI", e);
}
stopOAuth
public void stopOAuth()
stopOAuth'ı çağırın ve belirtilen aşamayı kontrol edin.
Örnek
try {
// TODO: ensure service is bound before calling SDK APIs
Object result = sdk.stopOAuth();
Log.d(TAG, "OK: stopOAuth result=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: stopOAuth", e);
}
logoutOAuth
public void logoutOAuth()
logoutOAuth ile oturum kapatın.
Örnek
try {
// TODO: ensure service is bound before calling SDK APIs
Object result = sdk.logoutOAuth();
Log.d(TAG, "OK: logoutOAuth result=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: logoutOAuth", e);
}
getProperty
public static java.lang.String getProperty()
Örnek
try {
// TODO: ensure service is bound before calling SDK APIs
Object result = sdk.getProperty();
Log.d(TAG, "OK: getProperty result=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: getProperty", e);
}
setProperty
public void setProperty(java.lang.String property)
Örnek
try {
// TODO: ensure service is bound before calling SDK APIs
Object result = sdk.setProperty("property");
Log.d(TAG, "OK: setProperty result=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: setProperty", e);
}
getClientId
public static java.lang.String getClientId()
Örnek
try {
// TODO: ensure service is bound before calling SDK APIs
Object result = sdk.getClientId();
Log.d(TAG, "OK: getClientId result=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: getClientId", e);
}
getBaseUri
public static android.net.Uri getBaseUri()
Örnek
try {
// TODO: ensure service is bound before calling SDK APIs
Object result = sdk.getBaseUri();
Log.d(TAG, "OK: getBaseUri result=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: getBaseUri", e);
}
Please report any broken links by emailing support@elotouch.com and include a link to the knowledge article