zoukankan      html  css  js  c++  java
  • 【Android开发】【第三方SDK】蒲公英摇一摇

    摇一摇用户信息反馈功能:用户通过摇晃手机或者触发按钮,弹出反馈信息界面,填写个人意见,上传服务器的功能。

    1. 蒲公英官网注册应用,获取AppId作为唯一标识;

    2. 下载sdk,获取pgyer_sdk_2.7.4.jar包。

     网址:https://www.pgyer.com/doc/view/sdk_download
    

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

    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. 配置 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>
    

    6. Android 7.0还应该配置 AndroidManifest:

    在application节点下添加:

    <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,文件内添加:

    <?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);
    
  • 相关阅读:
    MySql cmd下的学习笔记 —— 引擎和事务(engine,transaction)
    MySql cmd下的学习笔记 —— 有关视图的操作(algorithm)
    MySql cmd下的学习笔记 —— 有关视图的操作(建立表)
    MySql cmd下的学习笔记 —— 有关常用函数的介绍(数学函数,聚合函数等等)
    MySql cmd下的学习笔记 —— 有关多表查询的操作(多表查询练习题及union操作)
    MySql 在cmd下的学习笔记 —— 有关多表查询的操作(内连接,外连接,交叉连接)
    MySql cmd下的学习笔记 —— 有关子查询的操作(where型,from型,exists型子查询)
    MySql cmd下的学习笔记 —— 有关select的操作(order by,limit)
    剑指Offer--第21题 调整数组顺序使奇数位于偶数前面;
    剑指Offer--和为s的连续正数序列
  • 原文地址:https://www.cnblogs.com/neo-java/p/10184932.html
Copyright © 2011-2022 走看看