Last Updated on : 2024-07-13 07:12:25download
Voice Skills Account Linking UI BizBundle provides the custom skills of Amazon Alexa and Google Assistant. This allows users to quickly bind voice skills to your app and accelerates the process for you to get WWA certification.
The UI BizBundle relies on Smart Life App SDK. Before the following procedure, you must first finish the steps in Preparation, Fast Integration with Smart Life App SDK for Android, and Integrate with Framework.
To enable quick binding of voice skills, contact Tuya’s staff who deal with value-added services to subscribe to Amazon Alexa Skill Account Linking and Google Assistant Action Account Linking.
Add the following dependency to the file build.gradle
of module
:
dependencies {
api enforcedPlatform("com.thingclips.smart:thingsmart-BizBundlesBom:${biz_bom_version}")
implementation 'com.thingclips.smart:thingsmart-bizbundle-amazon_google_bind'
api "com.thingclips.smart:thingsmart:${sdk_version}}"
}
The Voice Skills Account Linking UI BizBundle uses the content of the H5 mall. Therefore, the UI BizBundle must depend on the Mall UI BizBundle of the same version. For more information about how to configure build.gradle
to implement the app mall with H5 pages, see Mall UI BizBundle. In this case, you only need to add the dependencies and do not need to subscribe to the mall value-added service.
app_scheme
Customize app_scheme
in the root directory local.properties
to identify your app. This value is the App Schema field value specified by you to create the app based on the SDK on the Tuya Developer Platform.
app_scheme=testdemo
Set the following parameters required by AndroidManifest.xml
in build.gradle
of module
:
defaultConfig {
...
Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
manifestPlaceholders = [
INTERNAL_HOST: "${properties.getProperty("app_scheme")}".concat('.app.tuya.com'),
ALEXA_AUTH_INTERNAL_HOST: "${properties.getProperty("app_scheme")}".concat('.applink.smart321.com'),
ALEXA_AUTH_INTERNAL_HOST_NEW: "${properties.getProperty("app_scheme")}".toLowerCase(Locale.ENGLISH).concat('.applink.smart321.com'),
]
}
Add the following configurations to the resource file res
:
// true means that navigation from the Amazon Alexa authorization page to your app is supported. false means that navigation from the Amazon Alexa authorization page to your app is not supported.
<bool name="is_show_alexa_oem_account"></bool>
// true means that Amazon Alexa is allowed to pull up the app authorization page. false means that Amazon Alexa is not allowed to pull up the app authorization page.
<bool name="is_alexa_to_thingpp_support">Whether Amazon Alexa is allowed to pull up the app authorization page</bool>
Add the following configurations to the resource file res
:
<string name="google_flip_client_id">Replaced with Client-ID provided by Tuya</string>
You must provide the following information to Tuya’s staff who deal with value-added services. Accordingly, Tuya will provide you with the Google Action Client-ID:
app_scheme
. This value is the App Schema field value specified by you to create the app based on the SDK on the Tuya Developer Platform.API description
fun alexaBind(mActivity: Activity, homeId: String, callback: IThingResultCallback<Boolean>)
Parameters
Parameter | Type | Description |
---|---|---|
homeId | String | The home ID. |
callback | IThingResultCallback | The callback. |
Example
ThingSocialLoginBindManager.Companion.getInstance().alexaBind(mActivity, homeId, new IThingResultCallback<Boolean>() {
@Override
public void onSuccess(Boolean result) {}
@Override
public void onError(String errorCode, String errorMessage) {}
});
API description
fun googleBind(mActivity: Activity, homeId: String, callback: IThingResultCallback<Boolean>)
Parameters
Parameter | Type | Description |
---|---|---|
homeId | String | The home ID. |
callback | IThingResultCallback | The callback. |
Example
ThingSocialLoginBindManager.Companion.getInstance().googleBind(mActivity, homeId, new IThingResultCallback<Boolean>() {
@Override
public void onSuccess(Boolean result) {}
@Override
public void onError(String errorCode, String errorMessage) {}
});
To unbind the voice skills of Amazon Alexa and Google Assistant, you only need to get a list of skills and process the events of tapping the list.
API description
fun getAuthorityPlatforms(cb: ResultCallback<ArrayList<AuthorityBean?>>?)
Data model of AuthorityBean
Field | Type | Description |
---|---|---|
time | Number | The time when a voice skill was bound. |
icon | String | The URL address of the icon. |
clientType | String | The platform type. |
status | Int |
|
platformName | String | The name of the platform. Example:
|
Example
SocialAuthManagerClient.INSTANCE.getInstance(MicroContext.getApplication())
.getAuthorityPlatforms(new ResultCallback<ArrayList<AuthorityBean>>() {
@Override
public void onSuccess(ArrayList<AuthorityBean> authorityBeans) {
//get bound list success
}
@Override
public void onFailure(@Nullable String s, @Nullable String s1) {
//get bound list onFailure
}
});
API description
//request code
private static final int REQUEST_REFRESH_MANAGER_AUTHORIZATION = 151;
// AuthorityBean to AuthPlatFormsBean
private void gotoDeAuthorize(Context context, AuthPlatFormsBean authPlatFormsBean) {
UrlBuilder mBuilder = UrlRouter.makeBuilder(context, "SocialAuthManagerAppAction");
Bundle newBundle = new Bundle();
newBundle.putString("action", "gotoDeAuthorize");
newBundle.putParcelable("authority_bean", authPlatFormsBean);
mBuilder.setRequestCode(REQUEST_REFRESH_MANAGER_AUTHORIZATION);
mBuilder.putExtras(newBundle);
UrlRouter.execute(mBuilder);
}
Parameters
Parameter | Type | Description |
---|---|---|
context | Context | Context |
authPlatFormsBean | AuthPlatFormsBean | Data model of AuthPlatFormsBean |
Updates the list of voice skills that have been bound with your app.
API description
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data){
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case REQUEST_REFRESH_MANAGER_AUTHORIZATION:
if (RESULT_OK == resultCode) {
// Call the getAuthorityPlatforms method to refresh the list of skills.
}
break;
default:
break;
}
}
We recommend that you use the Release version to debug the skill binding feature.
Smart Life App SDK will provide you with Google Action Client-ID after you provide Tuya with the following information:
app_scheme
. This value is the App Schema field value specified by you to create the app based on the SDK on the Tuya Developer Platform.Is this page helpful?
YesFeedbackIs this page helpful?
YesFeedback