サポートされているプラットフォーム: Android 12およびAndroid 14のEloデバイス、Backpack 4(Standard/Value)、I-Series 4(Standard/Value)、I-Series Standard、M50、Elo Pay M60、Elo Pay 7インチ、Elo Pay 22インチ、M100、M100C。
完全なリファレンス(知識ベース+ SDK Javadoc)
APIsは機能クラス(システム、ネットワーク、パッケージなど)で整理されており、発見を簡素化し、実装を加速します。
グローバルベストプラクティス(KBから)
-
APIを呼び出す前に、常にサービスにバインドしてください。
onServiceConnected()が受信されるまでメソッドを呼び出さないでください。 -
デバイスポリシーがローカル設定を上書きできると想定してください。
特に、時間、タイムゾーン、USB、キオスクモード、およびアプリケーションのインストールについては、これが当てはまります。 -
本番環境ではNTPを使用して時刻を同期してください。
テスト以外では手動での時間設定は避けてください。 -
リセット動作を理解してください。
-
エンタープライズリセット はEloの設定および登録状態をクリアします。
-
工場出荷時リセット はすべてのユーザーデータを消去し、デバイスを初期状態に戻します。
-
-
すべてのAPI呼び出しの結果をログに記録してください。
これはトラブルシューティングおよびエスカレーションにとって重要です。
❗ 重要な使用上の注意
一部のSDK APIは特定のAndroidの権限を必要とし、デバイスがEloViewモードにあるかAndroidホームモードにあるかに応じて異なる動作をする場合があります。デバイスポリシーの施行により、ローカルで適用された設定が上書きされることがあります。開発者は、本番環境のアプリケーションでAPIを呼び出す前にデバイスモードと権限状態を検証する必要があります。
EloView Home SDKはサービスベースのAndroid SDKであり、API呼び出しを行う前に成功裏にサービスがバインドされる必要があります。 メソッドは次の理由でnullまたは結果なしを返す場合があります。
- サービスがまだ接続されていない
- デバイスが互換性のあるEloView状態でない
- ポリシー制限が操作をブロックしている
このガイドは、サポートされている一般的に使用されるパターンに焦点を当てています。生のSDK Javadocに文書化されているすべてのAndroidの権限、ライフサイクルのエッジケース、または内部の戻り状態を列挙するものではありません。標準のAndroidサービスライフサイクル処理とエラーチェックは、本番環境のアプリケーションで実装される必要があります。
一般的な実世界のシナリオ(KBから)
シナリオ: デバイス登録後のタイムゾーンが不正確
system.setNtpEnabled(true);
system.setNtpServer("time.aws.com");
system.setTimeZone("US/Central");
system.syncTimeNow();
// 確認
String tz = system.getTimeZone();
Log.d(TAG, "Timezone=" + tz);
ヒント: 再起動後にタイムゾーンが元に戻る場合、Androidの自動タイムゾーンが有効になっていること、およびデバイスポリシーが異なる地域を再適用していないことを確認してください。
シナリオ: シングルアプリキオスクモードを安全に設定する
pkg.setKioskApp("com.example.kiosk");
pkg.setKioskModeEnabled(true);
pkg.launchApp("com.example.kiosk");
警告: 本番環境でキオスクモードを有効にする前に、常に管理者の逃げ道を検証してください。
サービスバインディングテンプレート(KBから)
eloView.bindService(context, callback, accessToken);
// callback.onServiceConnected() 内でSDK APIsを呼び出すのが安全です
eloView.unbindService(context);
重要な注意: bindService() と unbindService() は値を返しません。SDK APIsは、onServiceConnected()が呼び出された後にのみ呼び出されるべきです。
コア / サービスバインディングAPIs
EloView
EloView クラスは、以下の操作を提供します。
- デバイスがオフラインであるか、アカウントに登録されていない場合に、EloViewコントロールモードで再生するコンテンツをsetOfflinePlayContent()を使用して設定してください。
- 現在EloViewコントロールモードに設定されているコンテンツのタイプ(APKまたはWebView)および名前をgetPlayContent()を使用して取得してください。
- EloViewコントロールモードで設定されたコンテンツの現在の再生状況をgetPlayContentStatus()を使用して取得します。
- デバイスが現在EloViewクラウドに接続されているかどうかを確認します(オンラインまたはオフライン)getDeviceCloudStatus()を使用します。
- Eloクイック設定およびAndroidホームモードでWi-Fiを切り替えますtoggleWifi()を使用します。
- Eloクイック設定およびAndroidホームモードでBluetoothを切り替えますtoggleBT()を使用します。
bindService
public void bindService(android.content.Context context, ServiceConnectionCallback callback, java.lang.String accessToken)
このメソッドはEloViewサービスをアプリケーションにバインドします。EloView APIを呼び出す前に必ずこのメソッドを呼び出す必要があります。
パラメーター
- context – EloView APIsが使用されるコンテキスト。
try {
// TODO: servicesがバインドされていることを確認してから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)
このメソッドはアプリケーションからサービスをバインド解除するために使用されます。リソースをクリアする際にこのメソッドを使用してサービスからバインド解除します。
パラメーター
- context – コンテキスト
例
try {
// TODO: servicesがバインドされていることを確認してから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)
このメソッドは、デバイスがオフラインであるか、アカウントに登録されていない場合に、EloViewコントロールモードで再生するコンテンツを設定するために使用されます。デバイスがオンラインに戻り、EloView経由でコンテンツが設定された場合、これによりこのAPIを使用して設定されたコンテンツが上書きされます。
パラメーター
- packageName – デバイス上のデフォルトコンテンツとして設定されるパッケージ。
例
try {
// TODO: servicesがバインドされていることを確認してから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()
このメソッドは、デバイスに設定されているコンテンツのタイプと名前を返します。このメソッドはEloViewコントロールモードでのみ機能します。
例
try {
// TODO: servicesがバインドされていることを確認してから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()
このメソッドは、デバイスのコントロールモードでの再生コンテンツの状態を返します。状態は次の文字列のいずれかです。
YET_TO_DOWNLOAD, DOWNLOADING, DOWNLOADED, INSTALLING, INSTALLED, DOWNLOAD_FAILED, INSTALL_FAILED, UNKNOWN_STATUS
例
try {
// TODO: servicesがバインドされていることを確認してから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()
このメソッドはデバイスのオンラインまたはオフラインの状態を返します。状態は次のいずれかの文字列です。 "Online", "Offline", "Connecting", "Reconnecting", "Online (Not Provisioned)"。
例
try {
// TODO: servicesがバインドされていることを確認してから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)
デバイス上でWi-Fiを有効または無効にします。これにより、EloViewモードとAndroidホームモードが適用されます。
パラメーター
- isEnableWifi – QuickSettingsでWi-Fiを有効または無効にするためのブール値。
例
try {
// TODO: servicesがバインドされていることを確認してから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)
このメソッドはEloViewモードからAndroidホームモードに切り替えるために使用されます。これはswitchToAndroidHomeMode()と同じですが、2つのブールパラメータを受け取ります。 工場出荷時のリセットなしにEloViewモードに戻る方法はありませんので注意して使用してください。
パラメーター
- EloViewモードからAndroidホームモードにデバイスを切り替えます。
- isRebootNeededがtrueに設定されている場合、モードの変更を適用するためにデバイスは再起動されます。
- 重要な注意: Androidホームモードに切り替えると、EloViewによって管理される制限やポリシーが無効になることがあります。
例
try {
// TODO: servicesがバインドされていることを確認してから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)
このメソッドはQuickSettings(EloViewモード)でBluetoothを切り替えるために使用されます。これにより、AndroidホームモードでもBluetoothを切り替えることができます。
パラメーター
- isEnableBT – QuickSettingsでBluetoothを有効または無効にするためのブール値。
例
try {
// TODO: servicesがバインドされていることを確認してからSDK APIsを呼び出す
Object result = sdk.toggleBT(true);
Log.d(TAG, "OK: toggleBT result=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: toggleBT", e);
}
アカウントAPIs
AccountManager
AccountManagerクラスは以下の操作を提供します。
1. ユーザーが提供した資格情報(メールID/パスワードまたはクライアントID/シークレットキー)に基づいて、EloServerから認証トークンを提供します。
2. 特定の認証トークンが有効であるか、または期限切れであるかを確認します。認証トークンはEloViewサーバーから取得したトークンであるか、Eloサポートチームから提供されたオフラインJWTトークンです。 (オフライントークンは、アプリケーションのパッケージ名を使用して生成され、生成されたパッケージ名でのみ使用できます。)
3. すべてのAPIは動作するためにオフルトークンを必要とし、オンライントークンでは動作しません。例外はOTA APIです。OTA APIは、EloViewサーバーからOTAを適用する際にオンライントークンを必要とします。カスタムサーバーURLまたはデバイス上のローカルファイルからOTAを適用する場合は、オフライントークンが使用できます。
たとえば、認証トークンを取得するには:
1. メールIDとパスワードを使用してgetEloAccessTokenを呼び出します。 2. クライアントIDとシークレットキーを使用してgetEloOAuthTokenを呼び出します。認証に成功すると、これらのメソッドはトークンを返します。 3. オフラインJWTトークンについては、Eloサポートチームにお問い合わせください。
サーバーまたはサポートチームから取得されたトークンは、verifyEloTokenメソッドを使用して検証されます。
これらのAccountManager APIで使用されるブロードキャストレシーバを、onPause と onDestroyメソッドでunregisterAccountManagerListenerメソッドを使用して登録解除します。これにより、リークが回避されます。
getProperty
public static java.lang.String getProperty()
例
try {
// TODO: servicesがバインドされていることを確認してから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)
例
try {
// TODO: servicesがバインドされていることを確認してから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()
例
try {
// TODO: servicesがバインドされていることを確認してから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()
例
try {
// TODO: servicesがバインドされていることを確認してから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)
このメソッドは、Eloサーバーからアクセス・トークンを取得するために使用されます。
パラメーター
- context – 呼び出し元クラス(ActivityまたはService)のコンテキストオブジェクト。
例
try {
// TODO: servicesがバインドされていることを確認してから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)
このメソッドは、OAuthホステッドUIを初期化するために使用されます。
パラメーター
- activity – 呼び出し元クラスのActivityインスタンス。
例
try {
// TODO: servicesがバインドされていることを確認してから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()
onStop()のオーバーライドメソッド内でstopOAuthを呼び出します。
例
try {
// TODO: servicesがバインドされていることを確認してから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()
onStop()のオーバーライドメソッド内でdestroyOAuthを呼び出します。
例
try {
// TODO: servicesがバインドされていることを確認してから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を呼び出して現在のログインセッションを終了します。
例
try {
// TODO: servicesがバインドされていることを確認してから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)
この関数は、Eloサーバーに指定されたトークンを検証するよう要求します。検証が成功すると、ハンドラーはTOKEN_VERIFY_SUCCESS型のメッセージを受信します。失敗した場合はTOKEN_VERIFY_FAILが受信されます。
パラメーター
- context – 呼び出し元クラス(ActivityまたはService)のコンテキストオブジェクト。
例
try {
// TODO: servicesがバインドされていることを確認してから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)
このメソッドは、EloView Portalに新しいOAuthトークンを要求するために使用されます。認証に成功すると、トークンがデバイスに送信されます。このトークンは発行された後24時間使用可能です。トークンが期限切れになると、その後のトークン検証およびAPI呼び出しがTOKEN_VERIFY_FAIL応答を取得します。トークンが取得または受信されていない場合も同様です。
成功した場合、ハンドラーはOAUTH_TOKEN_VALID型のメッセージを受信します。以下は成功した応答の例です。
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IlJQTSJ9.eyJ1ZW1haWwiOiJwcmF0YXBlbG8rUHJvZEBnbWFpbC5jb20iLCJvdGl0bGUiOiJwcmF0YXBlbG8rUHJvZEBnbWFpbC5jb20iLCJjYXAiOnsiY3JjIjoiSDIvb2RnIiwicGVybSI6ImZmZmZmZmYwMCJ9LCJpYXQiOjE1MjUxMTc4NDgsIm5iZiI6MTUyNTExNzg0OCwiZXhwIjoxNTI1MjA0MjQ4LCJpc3MiOiIxNTAyIiwic3ViIjoiZWVhNDRkY2JkMjU5YzQyOWY4NTA3YWZhNTQyY2Q3M2YiLCJqdGkiOiJ2ZE14N1ppUGVnWT0ifQ.b2e-F1mVh0ummkBJk3m8pT2qSCceRxuS_A9GAKtYBeo"
認証失敗が発生した場合、無効なclientIDまたはsecretIDによる場合、ハンドラーはOAUTH_TOKEN_INVALID型のメッセージを受信します。
パラメーター
- context – 呼び出し元クラス(ActivityまたはService)のコンテキストオブジェクト。
例
try {
// TODO: servicesがバインドされていることを確認してから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);
}
unregisterAccountManagerListener
public void unregisterAccountManagerListener(android.content.Context context)
このメソッドは、AccountManagerから取得したブロードキャストレシーバを登録解除するために使用されます。 このAPIを使用したアクティビティのライフサイクルのonPauseおよびonDestroyメソッドでこのメソッドを呼び出すことを確認します。これにより、レシーバが漏洩することを防ぎます。
パラメーター
- context – システムAPIが使用されたコンテキスト。
例
try {
// TODO: servicesがバインドされていることを確認してからSDK APIsを呼び出す
Object result = sdk.unregisterAccountManagerListener(context);
Log.d(TAG, "OK: unregisterAccountManagerListener result=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: unregisterAccountManagerListener", e);
}
Please report any broken links by emailing support@elotouch.com and include a link to the knowledge article