蒲公英文档中心

Android SDK 2.x 集成指南

蒲公英 Android SDK 2.x 版本的集成步骤,涵盖 SDK 导入、摇一摇反馈与版本更新检查。

蒲公英 SDK 已停止维护,新集成请直接使用 蒲公英 API。本文保留用于历史版本参考。

本文介绍如何在 Android 工程中集成蒲公英 SDK 2.x 版本,并启用摇一摇用户反馈与版本更新检查。

3.0.0 起部分功能不向下兼容,新集成请参考 Android SDK 3.0.0 集成指南

前置要求

  • Android 工程(Eclipse 或 Android Studio)。
  • 已在蒲公英注册应用并获取 App Key。

App Key 可在应用管理页面首页查看:

导入 SDK

下载 Android SDK

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'
}

示例工程:PgyerSdkDemoForAndroidStudio

Android Studio 用户也可以使用与 Eclipse 相同的 jar 包方式集成。

Eclipse

将 jar 包复制到工程的 libs 目录。

加入 libs 目录

配置 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" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_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" />

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

PGYER_APPID 即 App Key。Android 6.0 以上需要在应用内动态申请读写权限。

摇一摇用户反馈

在 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() {
        super.onResume();

        // 自定义摇一摇灵敏度,默认 950,数值越小越灵敏
        PgyFeedbackShakeManager.setShakingThreshold(1000);

        // 以 Dialog 形式弹出(仅支持竖屏)
        PgyFeedbackShakeManager.register(MainActivity.this);

        // 以 Activity 形式打开(需在 AndroidManifest.xml 配置 FeedbackActivity)
        // 打开沉浸式,默认 false
        // FeedbackActivity.setBarImmersive(true);
        PgyFeedbackShakeManager.register(MainActivity.this, false);
    }

    @Override
    protected void onPause() {
        super.onPause();
        PgyFeedbackShakeManager.unregister();
    }
}

通过按钮弹出反馈界面

// Dialog 形式
PgyFeedback.getInstance().showDialog(MainActivity.this);

// Activity 形式(需在 AndroidManifest.xml 配置 FeedbackActivity)
// FeedbackActivity.setBarImmersive(true);
PgyFeedback.getInstance().showActivity(MainActivity.this);

Activity 弹出方式需同时在 onPause() 中调用 PgyFeedbackShakeManager.unregister()

@Override
protected void onPause() {
    super.onPause();
    PgyFeedbackShakeManager.unregister();
}

自定义外观

反馈 Dialog:

PgyerDialog.setDialogTitleBackgroundColor("#ff0000");
PgyerDialog.setDialogTitleTextColor("#ffffff");

反馈 Activity:

// 顶部导航栏与底部 bar 颜色
FeedbackActivity.setBarBackgroundColor("#ff0000");

// 按钮按下反馈色
FeedbackActivity.setBarButtonPressedColor("#ff0000");

// 颜色选择器背景色
FeedbackActivity.setColorPickerBackgroundColor("#ff0000");

自定义反馈信息

可添加任意数量的自定义字段:

PgyFeedback.getInstance().setMoreParam("tao", "value");

自定义数据会显示在反馈详情页:

检查更新

默认对话框

import com.pgyersdk.update.PgyUpdateManager;

PgyUpdateManager.setIsForced(true); // true 为强制更新;false 为非强制(默认)
PgyUpdateManager.register(this);

带回调的更新检查

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() {
        }
    });

自定义下载后的处理

若自行实现下载,需在下载完成后调用:

UpdateManagerListener.updateLocalBuildNumber(result);

解除注册

PgyUpdateManager.unregister();

result 的数据格式:

混淆

-libraryjars libs/pgyer_sdk_x.x.jar
-dontwarn com.pgyersdk.**
-keep class com.pgyersdk.** { *; }

本页目录