蒲公英文檔中心

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.** { *; }
彩票中心新浪竞技风票