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.** { *; }