• Pgyer document center

    Android SDK集成指南

    注冊應用獲取 App Key

    App Key:唯一標識一個應用的 Key,在蒲公英上的每一個 App 都有一個唯一的 App Key,開發者可以在應用管理頁面首頁查看。

    下載 SDK

    點擊這里下載 Android SDK

    導入SDK

    Eclipse用戶

    將 jar 包復制到工程的 libs 目錄下面。

    加入libs目錄

    Android Studio用戶

    添加代碼到project下的build.gradle文件中:

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

    然后在module下的build.gradle文件中添加依賴即可:

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

    Android Studio工程示例代碼

    Android Studio用戶除了可以使用以上方法集成SDK外,也可以使用和Eclipse用戶相同的方法來集成SDK。

    配置 AndroidManifest

    <!-- 必選-->
    <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>
    

    注意: APPID 即 App Key

    注意:Android6.0以上需要應用內部動態申請讀寫權限。

    上報 Crash 異常

    一、注冊Crash接口(必選)

    1. 在 application 中集成,可以有機會捕捉更多的異常(推薦)
    import com.pgyersdk.crash.PgyCrashManager;
    import android.app.Application;
    
    public class PgyApplication extends Application {
    
        @Override
        public void onCreate() {
            // TODO Auto-generated method stub
            super.onCreate();
    
            PgyCrashManager.register(this);
        }
    }
    

    在 AndroidManifest.xml 注意修改 android:name=".PgyApplication"此處的名字對應上面繼承 Application 的類名

    <application
        android:name=".PgyApplication"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
    </application>
    

    2. 在 activity 中集成

    import com.pgyersdk.crash.PgyCrashManager;
    
    public class MainActivity extends Activity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            PgyCrashManager.register(this);
        }
    }
    

    3. 解除注冊可以調用以下方法:

    PgyCrashManager.unregister();
    

    二、符號表配置(可選)

    通過 progurad 工具混淆時,工程目錄下會自動生成符號表文件 mapping.txt

    符號表

    在后臺配置符號表文件

    符號化

    上報 catch 異常

    try  {
        // code
    } catch (Exception e) {
        PgyCrashManager.reportCaughtException(MainActivity.this, e);            
    }
    

    搖一搖用戶反饋

    1. 普通的應用在 Activity 中添加如下代碼即可
    import com.pgyersdk.feedback.PgyFeedbackShakeManager;
    import com.pgyersdk.update.UpdateManagerListener;
    
    public class MainActivity extends Activity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
        }
    
        @Override
        protected void onResume() {
            // TODO Auto-generated method stub
            super.onResume();
    
            // 自定義搖一搖的靈敏度,默認為950,數值越小靈敏度越高。
            PgyFeedbackShakeManager.setShakingThreshold(1000);
    
            // 以對話框的形式彈出,對話框只支持豎屏
            PgyFeedbackShakeManager.register(MainActivity.this);
    
            // 以Activity的形式打開,這種情況下必須在AndroidManifest.xml配置FeedbackActivity
            // 打開沉浸式,默認為false
            // FeedbackActivity.setBarImmersive(true);
            //PgyFeedbackShakeManager.register(MainActivity.this, true); 相當于使用Dialog的方式;
            PgyFeedbackShakeManager.register(MainActivity.this, false);
    
        }
    
        @Override
        protected void onPause() {
            // TODO Auto-generated method stub
            super.onPause();
            PgyFeedbackShakeManager.unregister();
        }
    }
    
    1. 通過點擊按鈕的方式彈出反饋界面:
    // 以對話框的形式彈出
    PgyFeedback.getInstance().showDialog(MainActivity.this);
    
    // 以Activity的形式打開,這種情況下必須在AndroidManifest.xml配置FeedbackActivity
    // 打開沉浸式,默認為false
    // FeedbackActivity.setBarImmersive(true);
    PgyFeedback.getInstance().showActivity(MainActivity.this);
    

    :使用Activity彈出的方式,還需要添加以下代碼:

      @Override
        protected void onPause() {
            // TODO Auto-generated method stub
            super.onPause();
            PgyFeedbackShakeManager.unregister();
        }
    
    1. 自定義反饋界面對話框title
    PgyerDialog.setDialogTitleBackgroundColor("#ff0000");
    PgyerDialog.setDialogTitleTextColor("#ffffff");
    
    1. 自定義反饋界面Activity
    // 設置頂部導航欄和底部bar的顏色
    FeedbackActivity.setBarBackgroundColor("#ff0000");
    
    // 設置頂部按鈕和底部按鈕按下時的反饋色
    FeedbackActivity.setBarButtonPressedColor("#ff0000");
    
    // 設置顏色選擇器的背景色
    FeedbackActivity.setColorPickerBackgroundColor("#ff0000");
    
    1. 自定義反饋信息(不限制增加的數量)
    PgyFeedback.getInstance().setMoreParam("tao","value");
    

    將在用戶反饋的詳情界面看到自定義的數據,如下圖:

    檢查更新

    1. 默認對話框的版本更新檢查
    import com.pgyersdk.update.PgyUpdateManager;
    
    PgyUpdateManager.setIsForced(true); //設置是否強制更新。true為強制更新;false為不強制更新(默認值)。
    PgyUpdateManager.register(this);
    
    1. 帶回調的版本更新檢查
    import com.pgyersdk.javabean.AppBean;
    import com.pgyersdk.update.PgyUpdateManager;
    import com.pgyersdk.update.UpdateManagerListener;
    
    PgyUpdateManager.register(MainActivity.this,
    new UpdateManagerListener() {
    
       @Override
       public void onUpdateAvailable(final String result) {
    
         // 將新版本信息封裝到AppBean中
         final AppBean appBean = getAppBeanFromString(result);
         new AlertDialog.Builder(MainActivity.this)
             .setTitle("更新")
             .setMessage("")
             .setNegativeButton(
                     "確定",
                     new DialogInterface.OnClickListener() {
    
                         @Override
                         public void onClick(
                                 DialogInterface dialog,
                                 int which) {
                             startDownloadTask(
                                     MainActivity.this,
                                     appBean.getDownloadURL());
                         }
                     }).show();
       }
    
       @Override
       public void onNoUpdateAvailable() {
       }
    });
    
    1. 如果自己寫下載方法,需要在下載完成后加上:
    UpdateManagerListener.updateLocalBuildNumber(result);
    
    1. 解除注冊可以調用一下方法:
    PgyUpdateManager.unregister();
    

    result的格式為:

    混淆

    -libraryjars libs/pgyer_sdk_x.x.jar
    -dontwarn com.pgyersdk.**
    -keep class com.pgyersdk.** { *; }
    
  • 红豆视频