## Usage ### 1. Register your APP Register your APP on [IRext SDK console](http://site.irext.net/sdk), (You need to register an IRext account first) You need to fetch the package name and SHA1 signature of your APP and fill these information as SDK registration information While your APP is registered, you can see the APP key and APP secret in your APP list ### 2. Import the SDK Import the Android AAR package by adding following lines to your build.gradle, and sync the gradle configs. ```json implementation 'net.irext.webapi:irext-androidapi:1.5.1' ``` Add 2 meta-data tags to your AndroidManifest.xml providing APP key and secret get from step 1. ```xml ``` ### 3. Use the SDK Import classes: ```java import net.irext.webapi.model.*; import net.irext.webapi.WebAPIs; import net.irext.webapi.WebAPICallbacks.*; ``` Get web API instance: ```java WebAPIs webApis = WebAPIs.getInstance(); ``` Sign in for access id and token: ```java SignInCallback signInCallback = new SignInCallback() { @Override public void onSignInSuccess(UserApp userApp) { int id = userApp.getId(); int token = userApp.getToken(); } @Override public void onSignInFailed() { } @Override public void onSignInError() { } }; webApis.signIn(context, signInCallback); ``` Fetch household appliances categories: ```java ListCategoriesCallback listCategoriesCallback = new ListCategoriesCallback() { @Override public void onListCategoriesSuccess(List categories) { } @Override public void onListCategoriesFailed() { } @Override public void onListCategoriesError() { } }; webApis.listCategories(listCategoriesCallback); ``` Fetch brands of a certain category other than STB: ```java ListBrandsCallback listBrandsCallback = new ListBrandsCallback() { @Override public void onListBrandsSuccess(List brands) { } @Override public void onListBrandsFailed() { } @Override public void onListBrandsError() { } }; webApis.listBrands(category.getId(), listBrandsCallback); ``` Fetch cities (in China) for STB: ```java ListProvincesCallback listProvincesCallback = new ListProvincesCallback() { @Override public void onListProvincesSuccess(List provinces) { } @Override public void onListProvincesFailed() { } @Override public void onListProvincesError() { } }; ListCitiesCallback listCitiesCallback = new ListCitiesCallback() { @Override public void onListCitiesSuccess(List cities) { } @Override public void onListCitiesFailed() { } @Override public void onListCitiesError() { } }; webApis.listProvinces(listProvincesCallback); webApis.listCities(provincePrefix, listCitiesCallback); ``` Fetch STB operators of a certain city: ```java ListOperatersCallback listOperatorCallback = new ListOperatersCallback() { @Override public void onListOperatorsSuccess(List operators) { } @Override public void onListOperatorsFailed() { } @Override public void onListOperatorsError() { } }; webApis.listOperators(cityCode, listOperatorCallback); ``` Fetch remote indexes of a certain brand or STB operator: ```java ListIndexesCallback listIndexesCallback = new ListIndexesCallback() { @Override public void onListIndexesSuccess(List indexes) { } @Override public void onListIndexesFailed() { } @Override public void onListIndexesError() { } }; webApis.listRemoteIndexes(category.getId(), brand.getId(), city.getCode(), operator.getOperator_id(), listIndexesCallback); ``` Download IR binary for certain remote index: ```java DownloadBinCallback downloadBinCallback = new DownloadBinCallback() { @Override public void onDownloadBinSuccess(InputStream inputStream) { } @Override public void onDownloadBinFailed() { } @Override public void onDownloadBinError() { } }; webApis.downloadBin(remoteIndex.getRemote_map(), remoteIndex.getId(), downloadBinCallback); ```