## 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);
```