日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

Android SDK接入

更新時(shí)間:

1 SDK下載

如果使用Maven庫(kù)方式不需要下載,方法見2.1中Maven庫(kù)快速集成(遠(yuǎn)程同步)

如果要手動(dòng)集成,進(jìn)入EMAS控制臺(tái)下載SDK。

2 準(zhǔn)備工作

2.1 Android Studio開發(fā)

1、Maven庫(kù)快速集成(遠(yuǎn)程同步)(推薦方式)

Project根目錄下build.gradle文件中配置Maven庫(kù)URL:

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

在對(duì)應(yīng)的module下的build.gradle文件中添加對(duì)應(yīng)依賴:

dependencies {
    ......
    compile 'com.aliyun.ams:alicloud-android-feedback:3.4.2'
    ......
}
重要

如果編譯不通過(guò),需要在gradle.properties 中新增android:allowBackup="false",android.enableJetifier=true 。

2、手動(dòng)集成

復(fù)制下載SDK文件夾下的.aar.jar到libs目錄下,在build.gradle文件中添加如下配置:

repositories {
    flatDir {
        dirs 'libs'
    }
}

添加本地依賴:

dependencies {
    implementation(name: 'alicloud-android-feedback-3.4.2', ext: 'aar')
    implementation(name: 'alicloud-android-rest-1.7.3-open-release', ext: 'aar')
    implementation(name: 'alicloud-android-sender-1.1.5', ext: 'aar')
    implementation(name: 'alicloud-android-logger-1.2.0', ext: 'aar')
    implementation files('libs/alicloud-android-utdid-2.6.0.jar')
    implementation files('libs/alicloud-android-beacon-1.0.7.jar')
    implementation files('libs/alicloud-android-crashdefend-0.0.6.jar')
  	implementation files('libs/alicloud-android-tool-1.0.1.jar')
    //自行依賴support-v4
}
重要

切記添加support-v4的依賴。

如果遇到UTDID沖突可參考:《阿里云-移動(dòng)云產(chǎn)品SDK UTDID沖突解決方案》

2.2 權(quán)限

  • 需要相冊(cè)、相機(jī)和錄音的權(quán)限。

  • Android 6.0需要開發(fā)者自己的方式實(shí)現(xiàn)權(quán)限獲取,更低版本的使用聲明即可。

  • 如果用戶進(jìn)行需要權(quán)限的操作時(shí),用戶還未授權(quán)應(yīng)用相關(guān)權(quán)限,SDK會(huì)直接向用戶申請(qǐng)相關(guān)權(quán)限。應(yīng)用可以通過(guò)如下方式,注冊(cè)回調(diào)監(jiān)聽,在SDK申請(qǐng)權(quán)限之前,彈出提示窗,說(shuō)明權(quán)限用途。

        // 監(jiān)聽拍照操作 權(quán)限申請(qǐng)
        FeedbackAPI.setPermissionInterrupt(FeedbackAPI.ACTION_CAMERA, new IPermissionRequestInterrupt() {
            @Override
            public void interrupt(Context context, String action, String[] permissions, InterruptCallback callback) {
                showDialog(context,"相機(jī)", "拍照問(wèn)題進(jìn)行反饋", callback);
            }
        });
        // 監(jiān)聽相冊(cè)讀取操作 權(quán)限申請(qǐng)
        FeedbackAPI.setPermissionInterrupt(FeedbackAPI.ACTION_ALBUM, new IPermissionRequestInterrupt() {
            @Override
            public void interrupt(Context context, String action, String[] permissions, InterruptCallback callback) {
                showDialog(context, "相冊(cè)", "選擇問(wèn)題照片進(jìn)行反饋", callback);
            }
        });
        // 監(jiān)聽錄音操作 權(quán)限申請(qǐng)
        FeedbackAPI.setPermissionInterrupt(FeedbackAPI.ACTION_AUDIO, new IPermissionRequestInterrupt() {
            @Override
            public void interrupt(Context context, String action, String[] permissions, InterruptCallback callback) {
                showDialog(context, "錄音", "錄制語(yǔ)音描述進(jìn)行反饋", callback);
            }
        });

    // 這里是示意代碼,具體請(qǐng)?zhí)鎿Q為應(yīng)用統(tǒng)一的權(quán)限說(shuō)明樣式
    private void showDialog(Context context, String permission, String message, final InterruptCallback callback) {
        final AlertDialog.Builder normalDialog = new AlertDialog.Builder(context);
        normalDialog.setTitle("即將進(jìn)行敏感權(quán)限授權(quán)");
        normalDialog.setMessage(permission + "權(quán)限作用:" + message);
        normalDialog.setPositiveButton("確定",
                new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        // 用戶同意申請(qǐng)權(quán)限,執(zhí)行權(quán)限申請(qǐng)操作
                        callback.goOnRequest();
                    }
                });
        normalDialog.setNegativeButton("取消",
                new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        // 用戶不同意申請(qǐng)權(quán)限,停止權(quán)限申請(qǐng)操作
                        callback.stopRequest();
                    }
                });
        // 顯示
        normalDialog.show();
    }

2.3 混淆配置

應(yīng)用進(jìn)行混淆打包時(shí),應(yīng)加入如下混淆配置:

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

參數(shù)說(shuō)明:

  • application:Application對(duì)象。

  • appkey:阿里云上應(yīng)用的唯一標(biāo)識(shí),阿里云控制臺(tái)可查詢到。

  • appSecret:阿里云上應(yīng)用的appSecret,阿里云控制臺(tái)可查詢到。

重要

  • 為避免在日志中泄漏參數(shù)appkey/appsecret或App運(yùn)行過(guò)程中產(chǎn)生的數(shù)據(jù),建議線上版本關(guān)閉SDK調(diào)試日志。

  • 由于所有用戶使用統(tǒng)一的SDK接入,在接入過(guò)程中需要在代碼中設(shè)置appkey/appsecret參數(shù),而此類參數(shù)與計(jì)量計(jì)費(fèi)密切相關(guān),為防止惡意反編譯獲取參數(shù)造成信息泄漏,建議您開啟混淆,并進(jìn)行App加固后再發(fā)布上線。

3.2 打開用戶反饋界面

另起一個(gè)Activity打開用戶反饋H5界面:

FeedbackAPI.openFeedbackActivity();

如果需要調(diào)用結(jié)果(例如顯示加載中):

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*/);
說(shuō)明

fragment的使用務(wù)必使用上述setFeedbackFragment的回調(diào)在xml中聲明fragment那種方式,暫不支持包裝fragment的activity;務(wù)必調(diào)用FeedbackAPI.cleanFeedbackFragment();此時(shí)的Fragment是support-v4包中的Fragment。

3.3 獲取反饋未讀數(shù)

FeedbackAPI.getFeedbackUnreadCount(IUnreadCountCallback callback)

參數(shù)callback:onSuccess(int count)回調(diào)方法count指示當(dāng)前未讀消息數(shù)。

3.4 設(shè)置標(biāo)題欄中“歷史反饋”的字號(hào)

FeedbackAPI.setHistoryTextSize(20); //單位為sp
說(shuō)明

3.1.0版本中需要將控制臺(tái)中歷史反饋字號(hào)設(shè)置為0,此方法才會(huì)生效。

3.5 設(shè)置返回按鈕的圖片

FeedbackAPI.setBackIcon(R.drawable.back);

3.6 沉浸式任務(wù)欄

默認(rèn)使用沉浸式任務(wù)欄,如需要關(guān)閉可以使用FeedbackAPI.setTranslucent(false);

說(shuō)明

3.1.0版本中需要將控制臺(tái)中沉浸式任務(wù)欄設(shè)置為true,此方法才會(huì)生效。

3.7 設(shè)置默認(rèn)聯(lián)系方式

FeedbackAPI.setDefaultUserContactInfo(“1300000XXXX”);

3.8 用戶昵稱

  • 設(shè)置用戶昵稱后,用戶反饋信息時(shí)攜帶該昵稱,最終在控制臺(tái)反饋會(huì)話中可查看。

  • v3.1.7新增接口。

FeedbackAPI.setUserNick("xxx");

3.9 語(yǔ)音反饋

需要使用3.1.0以上版本的SDK,并且在控制臺(tái)>系統(tǒng)配置>Mobile客戶端配置>全局配置中將是否開啟語(yǔ)音打開。

3.10 設(shè)置反饋消息自定義參數(shù)

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

4 Demo

Demo地址

說(shuō)明

Demo工程中,FeedbackAPI.init被調(diào)用了多次,這是為了能夠達(dá)到實(shí)時(shí)更新配置的效果,實(shí)際使用上建議只在Application中,調(diào)用FeedbackAPI.init方法一次即可。