【Android開發】【第三方SDK】蒲公英搖一搖

搖一搖用戶信息反饋功能:用戶經過搖晃手機或者觸發按鈕,彈出反饋信息界面,填寫我的意見,上傳服務器的功能。java

###1. 蒲公英官網註冊應用,獲取AppId做爲惟一標識;android

###2. 下載sdk,獲取pgyer_sdk_2.7.4.jar包。 網址:https://www.pgyer.com/doc/view/sdk_downloadgit

###3. 配置project下的build.gradle文件github

allprojects {
    repositories {
        jcenter()
        maven { url "https://raw.githubusercontent.com/Pgyer/mvn_repo_pgyer/master" }
    }
}

###4. 配置module下的build.gradle文件服務器

dependencies {
    compile 'com.pgyersdk:sdk:2.7.3'
}

或者將獲取的pgyer_sdk_2.7.4.jar放到libs目錄,右鍵添加到項目。網絡

###5. 配置 AndroidManifestapp

<!-- 必選-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- 獲取網絡狀態 -->
<uses-permission android:name="android.permission.INTERNET" /> <!-- 網絡通訊-->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />  <!-- 獲取設備信息 -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!-- 獲取MAC地址-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!-- 讀寫sdcard,storage等等 -->
<uses-permission android:name="android.permission.RECORD_AUDIO" /> <!-- 容許程序錄制音頻 -->
<uses-permission android:name="android.permission.GET_TASKS"/>


<!-- 可選-->
<uses-permission android:name="android.permission.READ_LOGS" /> <!-- 獲取logcat日誌 -->

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
<!-- 可選-->
    <activity android:name="com.pgyersdk.activity.FeedbackActivity"/>

<!-- 必選-->
    <meta-data
        android:name="PGYER_APPID"
        android:value="4b6e8877dfcc2462bedb37dcf66b6d87" >
    </meta-data>
</application>

###6. Android 7.0還應該配置 AndroidManifest:maven

在application節點下添加:ide

<provider android:name="android.support.v4.content.FileProvider"
            android:authorities="您自定義provider file值"
            android:exported="false"
            android:grantUriPermissions="true">
            <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/provider_paths"/>
</provider>

在res目錄下新建文件夾xml,新建文件:provider_paths.xml,文件內添加:gradle

<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
    <external-path path="Android/data/com/pgyersdk" name="files_root" />
    <external-path path="." name="external_storage_root" /></paths>

###7, 在MainActivity中添加java代碼。

#####7-1 . onCreate方法:

//動態請求權限
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            if (checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
                requestPermissions(
                        new String[] { Manifest.permission.READ_EXTERNAL_STORAGE },
                        REQUEST_CODE_READ_EXTERNAL_STORAGE_PERMISSIONS);
                requestPermissions(
                        new String[] { Manifest.permission.WRITE_EXTERNAL_STORAGE },
                        REQUEST_CODE_WRITE_EXTERNAL_STORAGE);
            }
        }

#####7-2. 添加權限請求監聽

@SuppressLint("NewApi")
    @Override
    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
        switch (requestCode) {
            case REQUEST_CODE_WRITE_EXTERNAL_STORAGE: {
                for (int i = 0; i < permissions.length; i++) {
                    if (grantResults[i] == PackageManager.PERMISSION_GRANTED) {

                    } else {

                    }
                }
            }
            case REQUEST_CODE_READ_EXTERNAL_STORAGE_PERMISSIONS: {
                for (int i = 0; i < permissions.length; i++) {
                    if (grantResults[i] == PackageManager.PERMISSION_GRANTED) {
                        Toast.makeText(this, "容許讀寫存儲!", Toast.LENGTH_SHORT).show();
                    } else {
                        Toast.makeText(this, "未容許讀寫存儲!", Toast.LENGTH_SHORT).show();
                    }
                }
            }
            break;
            default: {
                super.onRequestPermissionsResult(requestCode, permissions, grantResults);
            }
        }
    }

#####7-3. onResume方法,初始化Activity類型的UI:

PgyFeedbackShakeManager.setShakingThreshold(1000);
        FeedbackActivity.setBarImmersive(false);
        // 設置頂部導航欄和底部bar的顏色
        FeedbackActivity.setBarBackgroundColor("#ff0000");
        // 設置頂部按鈕和底部按鈕按下時的反饋色
        FeedbackActivity.setBarButtonPressedColor("#ff0000");
        // 設置顏色選擇器的背景色
        FeedbackActivity.setColorPickerBackgroundColor("#ff0000");
        PgyFeedbackShakeManager.register(MainActivity.this, false);

也能夠是dialog類型的UI,那樣就不用配置FeedbackActivity。

#####7-4. onPause方法

PgyFeedbackShakeManager.unregister();

以上的配置,是配置好了之後,搖一搖手機就會顯示UI界面。 若是是想經過點擊按鈕觸發顯示反饋界面,則能夠添加以下代碼

FeedbackActivity.setBarImmersive(false);
PgyFeedback.getInstance().showActivity(mContext);
相關文章
相關標籤/搜索