全部产品

Android SDK接入

1 SDK下载

进入EMAS控制台下载SDK:https://emas.console.aliyun.com/#/sdkDownload

如果使用Maven库方式不需要下载,方法见2.1中Maven库快速集成(远程同步)。

2 准备工作

2.1 Android Studio开发(推荐方式)

1、手动集成

复制下载SDK文件夹下的.aar.jar到libs目录下,在build.gradle文件中添加如下配置:添加本地libs地址,以便可以找到放置在libs中的aar文件:

repositories {
    flatDir {
        dirs 'libs'
    }
}

添加本地依赖:

dependencies {
    compile(name: 'alicloud-android-feedback-3.3.3', ext: 'aar')
    compile(name: 'alicloud-android-rest-1.5.2-open', ext: 'aar')
    compile(name: 'alicloud-android-sender-1.1.0', ext: 'aar')
    compile files('libs/alicloud-android-ut-5.4.4.jar')
    compile files('libs/alicloud-android-utdid-2.5.1-proguard.jar')
    compile files('libs/alicloud-android-utils-2.0.0.jar')
    compile files('libs/alicloud-android-beacon-1.0.5.jar')
    //自行依赖support-v4
}
注意

切记添加support-v4的依赖。

如果遇到UTDID冲突可参考:《阿里云-移动云产品SDK UTDID冲突解决方案》

2、Maven库快速集成(远程同步

Project根目录下build.gradle文件中配置maven库URL:

allprojects {
    repositories {
        jcenter()
        maven {
            url 'http://maven.aliyun.com/nexus/content/repositories/releases/'
        }
    }
}

在对应的module下的build.gradle文件中添加对应依赖:

dependencies {
    ......
    compile 'com.aliyun.ams:alicloud-android-feedback:3.3.3'
    compile 'com.aliyun.ams:alicloud-android-utdid:2.5.1-proguard'
    ......
}

3、EMAS产品统一接入

要求SDK版本>=3.1.5,使用统一接入方式后,将使接入及初始化操作更简单。

FeedbackAPI.init(application);

具体请参考:Android EMAS统一接入

2.1 Eclipse开发

解压前面下载的SDK, 可以发现三个jar和一个aar,分别做如下处理:

jar包的处理

  1. jar包直接复制到项目的libs目录下;

  2. 自行添加support-v4.jarlibs目录下。

alicloud-android-feedback-XXX.aar的迁移

  1. 解压alicloud-android-feedback-XXX.aar到本地。

  2. 解压得到的目录里创建一个libs目录,然后将classes.jar重命名为任何你想要的jar名称(例如alisdk-feedback.jar), 然后复制到libs目录下。

  3. 复制AndroidManifest.xml文件中所有的权限声明,以及所有的组件(Activity/Service/Receiver)声明到项目中的AndroidManifest.xml文件中。

  4. 解压得到的目录里创建project.properties文件,添加android.library=true,表示作为库项目使用。

  5. 删除aapt和jni文件夹以及R.txt文件。

  6. 一个Eclipse Library项目已经构建完成了,接下来只需打开Eclipse导入项目并在你的项目中配置引用这个项目即可。

说明

如果接入方接入了阿里系的其它SDK从而导致包冲突,则去掉冲突的依赖或者jar包即可。

2.2 权限

  • 需要相册、相机和录音的权限。

  • Android 6.0需要开发者自己的方式实现权限获取,更低版本的使用声明即可。

2.3 混淆配置

应用进行混淆打包时,应加入如下混淆配置:

-keep class com.taobao.** {*;}
-keep class com.alibaba.** {*;}
-dontwarn com.taobao.**
-dontwarn com.alibaba.**
-keep class com.ut.** {*;}
-dontwarn com.ut.**
-keep class com.ta.** {*;}
-dontwarn com.ta.**

3 开始使用

3.1 反馈组件初始化

FeedbackAPI.init(application, appkey,appSecret);

参数说明:

  • application:Application对象。

  • appkey:阿里云上应用的唯一标识,阿里云控制台可查询到。

  • appSecret:阿里云上应用的appSecret,阿里云控制台可查询到。

注意

  • 为避免在日志中泄漏参数appkey/appsecret或App运行过程中产生的数据,建议线上版本关闭SDK调试日志。

  • 由于所有用户使用统一的SDK接入,在接入过程中需要在代码中设置appkey/appsecret参数,而此类参数与计量计费密切相关,为防止恶意反编译获取参数造成信息泄漏,建议您开启混淆,并进行App加固后再发布上线。

3.2 打开用户反馈界面

另起一个Activity打开用户反馈H5界面:

FeedbackAPI.openFeedbackActivity();

如果需要调用结果(例如显示加载中):

FeedbackAPI.openFeedbackActivity(final Callable success, final Callable fail)

如果希望使用Fragment方式打开:

 FragmentManager fm = getSupportFragmentManager();
 final FragmentTransaction transaction = fm.beginTransaction();
 final Fragment feedback = FeedbackAPI.getFeedbackFragment();
 // must be called
 FeedbackAPI.setFeedbackFragment(new Callable() {
      @Override
            public Object call() throws Exception {
                transaction.replace(R.id.content, feedback);
                transaction.commit();
                return null;
            }
 }/*success callback*/, null/*fail callback*/);
说明

fragment的使用务必使用上述setFeedbackFragment的回调在xml中声明fragment那种方式,暂不支持包装fragment的activity;务必调用FeedbackAPI.cleanFeedbackFragment();此时的Fragment是support-v4包中的Fragment。

3.3 获取反馈未读数

FeedbackAPI.getFeedbackUnreadCount(IUnreadCountCallback callback)

参数callback:onSuccess(int count)回调方法count指示当前未读消息数。

3.4 设置标题栏中“历史反馈”的字号

FeedbackAPI.setHistoryTextSize(20); //单位为sp
说明

3.1.0版本中需要将控制台中历史反馈字号设置为0,此方法才会生效。

3.5 设置返回按钮的图片

FeedbackAPI.setBackIcon(R.drawable.back);

3.6 沉浸式任务栏

默认使用沉浸式任务栏,如需要关闭可以使用FeedbackAPI.setTranslucent(false);

说明

3.1.0版本中需要将控制台中沉浸式任务栏设置为true,此方法才会生效。

3.7 设置默认联系方式

FeedbackAPI.setDefaultUserContactInfo(“13800000000”);

3.8 用户昵称

  • 设置用户昵称后,用户反馈信息时携带该昵称,最终在控制台反馈会话中可查看。

  • v3.1.7新增接口。

FeedbackAPI.setUserNick("xxx");

3.9 语音反馈

需要使用3.1.0以上的版本的sdk,并且在控制台-系统配置/Mobile客户端配置/全局配置中将是否开启语音打开。

3.10 设置反馈消息自定义参数

JSONObject extInfo = new JSONObject();
extInfo.put("key", "value");
FeedbackAPI.setAppExtInfo(extInfo);

4 Demo

Demo地址:https://github.com/aliyun/alicloud-android-demo

说明

Demo工程中,FeedbackAPI.init被调用了多次,这是为了能够达到实时更新配置的效果,实际使用上建议只在Application中,调用FeedbackAPI.init方法一次即可。