TVS 登录接 入 一. 登录验证流程 1. 厂商 APP-LWA-AVS 音箱 -AVS 验证流程 2. 厂商 APP- 微信开发平台 -TVS 后台 -TVS 音箱 -TVS 验证流程 3 厂商 APP-QQ 互联平台 -TVS 后台 -TVS 音箱 -TVS 验证流程
二 厂商 APP 接 入 TVS 登录系统配置步骤 1. 打开 工程 app 目录下的 build.gradle, (1) 确保 defaultconfig 下的 applicationid 为微信开放平台下注册的包名 ; (2) 确保 signingconfigs 目录下 storefile.file 路路径正确,keyAlias keypassword storepassword 均与微信开放平台下签名 一致 2. 将 tvsloginlib.aar 放 入 app\libs 目录下, 打开 build.gradle 将以下配置在 dependencies 属性下 compile(name:'tvsloginlib', ext:'aar') compile 'com.android.support:design:xx.x.0' compile 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:1.0.2' compile 'com.google.code.gson:gson:2.8.1' repositories { flatdir { dirs 'libs' 确保 minsdkversion 大于等于 15 如有别的 module 需要引 用这个 aar 所在的 module, 需要在另 一个 module 的 gradle 里里配置如下 repositories { flatdir { dirs project(':[aarmodulename]').file('libs') 3. 打开 工程 AndroidManifest.xml, (1) 确保 package 名称与微信开放平台下注册的包名 一致 ; (2) 确保以下权限被添加 <uses-permission android:name="android.permission.internet"/>
<uses-permission android:name="android.permission.access_network_state" /> <uses-permission android:name="android.permission.access_wifi_state" /> <uses-permission android:name="android.permission.read_phone_state"/> <uses-permission android:name="android.permission.write_external_storage"/ > < u s e s - p e r m i s s i o n android:name="android.permission.mount_unmount_filesystems"/> <uses-permission android:name= android.permission.write_settings"/> (3) 将 application 的 name 改为 com.tencent.ai.tvs.loginapplication, 添加 android:exported= true 属性 (4) 在 application 标签内新添加三个 Activity <activity android:name="[packagename].wxapi.wxentryactivity" android:exported="true" android:launchmode="singletask"> </activity> <activity android:name="com.tencent.tauth.authactivity" android:nohistory="true" android:launchmode="singletask" > <intent-filter> <action android:name="android.intent.action.view" /> <category android:name="android.intent.category.default" /> <category android:name="android.intent.category.browsable" /> <data android:scheme="[qqappid]" /> </intent-filter> </activity> <activity android:name="com.tencent.connect.common.assistactivity" android:configchanges="orientation keyboardhidden" android:screenorientation="behind" android:theme="@android:style/theme.translucent.notitlebar" /> 其中 [packagename] 为微信开放平台下注册的包名其中 [QQAPPID] 为 QQ 互联平台注册的 AppId 4. 登录 Activity 继承 AuthorizeListener 接 口实现其中两个 方法, 具体说明 见第三部分 5. 登录 Activity 重写 onactivityresult 回调, 用于接收 QQ 登录的票据信息 三. TVSSDK 接 口及使 用说明 1. LoginProxy TVS 登录功能代理理类 getinstance 获取 LoginProxy 实例例 static LoginProxy getinstance(string appidwx, String appidqqopen) appidwx: 传 入微信公众平台申请的 appid appidqqopen: 传 入 QQ 互联平台申请的 appid getinfomanager
获取 LoginInfoManager 实例例 LoginInfoManager getinfomanager(eloginplatform platform) platform: 传 入需要获取哪个帐号平台的登录信息 requestlogin 请求 TVS 登录 void requestlogin(eloginplatform platform, String productid, String dsn, Activity activity) platform: 传 入需要登录哪个帐号平台 productid: 设备的 productid dsn: 设备的序列列号 activity: 登录 Activity 实例例 requesttokenverify 请求验票刷票 void requesttokenverify(eloginplatform platform, String productid, String dsn) platform: 传 入在哪个帐号平台验票刷票 productid: 设备的 productid dsn: 设备的序列列号 istokenexist 判断 Token 信息存在与否 boolean istokenexist(eloginplatform platform, Context context) platform: 传 入在哪个帐号平台验票刷票 context: 当前应 用上下 文 cleartoken 清除 Token 信息, 用于注销 void cleartoken(eloginplatform platform, Context context) platform: 传 入在哪个帐号平台验票刷票 context: 当前应 用上下 文 setownactivity 设置 Wup 接 口调 用所属的 Activity, 用于 WUPResp 与 UI 线程进 行行同步 void setownactivity(activity activity) activity: 传 入 用于授权后回调的 Activity setauthorizelistener void setauthorizelistener (AuthorizeListener listener) 设置票据验证监听器器 listener:authorizelistener 实例例 handleqqopenintent
QQ 登录帐号信息回调 void handleqqopenintent(int requestcode, int resultcode, Intent data) requestcode:activity 跳转请求 Code, 确认返回数据是哪个 Activity 的 resultcode: 子 Activity 通过 setresult 返回的 code data:intent 对象, 带有返回的数据 getclientid 获取 用于对 齐 AVS 厂商信息的 ClientId String getclientid(eloginplatform platform) platform: 获取哪个登录平台的信息 getuserid 获取 用户 Id String getuserid() setloginenv 设置帐号后台环境 void setloginenv(eloginenv env) env: 帐号后台环境类型 2. LoginInfoManager 微信登录信息管理理类, 用户信息基类, 被 WxInfoManager 和 QQOpenInfoManager 继承 accesstoken String 授权 AccessToken refreshtoken String 授权 RefreshToken openid String 用户 OpenID expiretime long 刷票过期时间 tvsid String 授权后请求到的 tvsid 3. AuthorizeListener 微信票据验证监听器器 void onsuccess(int type); 微信接 口调 用成功回调, 用于 UI 更更新 type: 调 用类型 AUTH_TYPE: 授权票据类型 REFRESH_TYPE: 刷新票据类型 WX_TVSIDRECV_TYPE: 微信 TVSID 接收类型
QQOPEN_TVSIDRECV_TYPE:QQ TVSID 接收类型 TOKENVERIFY_TYPE:QQ 帐号验证类型 USERINFORECV_TYPE: 用户信息获取类型 void onerror(int type) 微信接 口调 用失败回调, 用于 UI 更更新 type: 调 用类型 AUTH_TYPE: 授权票据类型 REFRESH_TYPE: 刷新票据类型 TVSIDRECV_TYPE:TVSID 接收类型 WX_TVSIDRECV_TYPE: 微信 TVSID 接收类型 QQOPEN_TVSIDRECV_TYPE:QQ TVSID 接收类型 TOKENVERIFY_TYPE:QQ 帐号验证类型 USERINFORECV_TYPE: 用户信息获取类型 4. EloginPlatform 登录帐号类型枚举 WX: 微信帐号 QQOpen:QQ 互联帐号 QQ:QQ 帐号 ( 内部 ) 5. EloginEnv 帐号后台环境配置 FORMAL: 正式环境 TEST: 测试环境 6. UserInfoManager 用户信息管理理类, 包含 idtype 帐号类型 0: 微信 1:QQ nickname 昵称 headimgurl 头像 URL 地址 sex 性别 unionid 微信 UnionId getinstance 获取 UserInfoManager 实例例 static UserInfoManager getinstance()
四. 使 用示例例