九麟SDK 接入文档

1接入登录SDK
AndroidManifest.xml 添加代码
权限

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.READ_LOGS" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />

gradle 添加VK Facebook 导入sdk

  compile 'com.facebook.android:facebook-android-sdk:4.+'
    compile 'com.vk:androidsdk:1.6.8'
     compile(name: 'foreignJLSDK', ext: 'aar')

声明

  <!-- 第三方界面注册 -->
        <activity
            android:name="com.foreign.jlsdk.ThirdpartyLoginActivity"
            android:configChanges="orientation|screenSize"
            android:launchMode="singleTask"
            android:theme="@style/fun" >
        </activity>

        <!-- 论坛web -->
        <activity android:name="com.foreign.jlsdk.view.JLWebView"
            android:configChanges="orientation|screenSize"
            android:launchMode="singleTask"
            android:theme="@style/fun"/>

        <!-- 通用界面 -->
        <activity
            android:name="com.foreign.jlsdk.DetailedFragment"
            android:configChanges="orientation|screenSize"
              android:theme="@style/fun"
            android:launchMode="singleTask" >
        </activity>

         <!-- 悬浮窗服务-->
        <service
            android:name="com.foreign.jlsdk.FxService"
            android:configChanges="orientation|screenSize" >
        </service>

  <!-- paysstion -->
        <activity
            android:name="com.payssion.android.sdk.PayssionActivity"
            android:label="@string/app_name"
            android:theme="@style/Theme.PayssionTrans" />
        <activity
            android:name="com.payssion.android.sdk.PaymentWebActivity"
            android:label="@string/app_name"
            android:theme="@style/Theme.AppCompat.Light.NoActionBar" />

       <!-- facebook -->
        <activity
             android:name="com.foreign.jlsdk.MQVKFacebook.MyFacebook"
            android:theme="@style/fun" />
        <meta-data
            android:name="com.facebook.sdk.ApplicationId"
                    tools:replace="android:value"
            android:value="@string/app_id" />
       <provider android:authorities="com.facebook.app.FacebookContentProvider241511576234954"
            android:name="com.facebook.FacebookContentProvider"
            android:exported="true"/>
- 
<!--   VK  -->
        <!-- VK -->
        <activity
            android:name="com.foreign.jlsdk.MQVKFacebook.MyVK"
            android:theme="@style/fun" />

        <activity
            android:name="com.vk.sdk.VKServiceActivity"
            android:configChanges="orientation|screenSize"
            android:label="ServiceActivity"
            android:theme="@style/VK.Transparent" />
         <activity
            android:name="com.foreign.jlsdk.MQVKFacebook.VKInviteActivity"
            android:configChanges="orientation|screenSize"
            android:launchMode="singleTask" />

Strings 添加 facebook VK APPID

  <string name="app_id">355198514515820</string> 
  <integer name="com_vk_sdk_AppId">5197543</integer> 

在Application里 添加

Constant.getinit(getApplicationContext());

初始化 调起登录
替换自己的Appid Key

JLAppInfo appInfo = new JLAppInfo();
appInfo.setAppId("08afc1ee45874935a78ee6c4bc2074a1");
appInfo.setAppKey("3bc5fccb140247eab83cee443390e8a8");

final SDKManager sdkManager = SDKManager.getInstance();
sdkManager.Init(this, appInfo);

//如果要设置自己的悬浮窗

        sdkManager.setLogoImage(R.drawable.jl_logo);        //设置悬浮窗图片
        sdkManager.setCommunityImage(R.drawable.jl_logo);   //设置社区图片
        sdkManager.setPersonalImage(R.drawable.jl_logo);    //设置个人中心图片
        sdkManager.setFAQImage(R.drawable.jl_logo);         //设置常见问题解答
        sdkManager.setGoneImage(R.drawable.jl_logo);        //设置隐藏按钮图片
        sdkManager.setVKInviteImage(R.drawable.jl_logo);    //设置VK邀请按钮
          sdkManager.setVKInvite(true);   //显示VK邀请按钮 主要在VK登陆才会显示

        //设置社区web地址  如果没有 自动隐藏布局
        sdkManager.setCommunityUrl("http://blog.csdn.net/?ref=toolbar_logo");
        //设置常见问题解答 web地址  如果没有 自动隐藏布局
        sdkManager.setFAQUrl("https://www.facebook.com/");                    
                /***
                 * 调起登陆界面
                 * Constant.STYLE1  有第三方登录
                 * Constant.STYLE2  没有第三方登陆
                 *          * CHINESE_SERVER  国内服务器
         * OVERSEAS_SERVER 海外服务器
                 */
           sdkManager.Login(MainActivity.this, Constant.STYLE1,Constant.CHINESE_SERVER,new SDKManager.OnLoginProcessListener() {
                    @Override
                    public void finishLoginProcess(int code, JLAccountInfo arg1) {
                        if (code == -1) {
                            Toast.makeText(MainActivity.this, "用户注销", Toast.LENGTH_SHORT).show();
                        } else {
                            System.out.println("!!!!!!!!!" + code);
                            System.out.println("!!!!!!!!!getUid" + arg1.getUid());
                            System.out.println("!!!!!!!!!getToken" + arg1.getToken());
                            System.out.println("!!!!!!!!!getPartnerId" + arg1.getPartnerId());
                            System.out.println("!!!!!!!!!getIsBind" + arg1.getIsBind());
                            System.out.println("!!!!!!!!!getIsUpdate" + arg1.getIsUpdate());
                            System.out.println("!!!!!!!!!getIsSecure" + arg1.getIsSecure());
                            System.out.println("!!!!!!!!!getimage" + arg1.getImageUrl());

                            if (arg1.getIsBind().equals("1")) {
                                Toast.makeText(MainActivity.this, "用户已经绑定账号", Toast.LENGTH_SHORT).show();
                            }
                            if (arg1.getIsSecure().equals("1")) {
                                Toast.makeText(MainActivity.this, "用户已经绑定密保邮箱", Toast.LENGTH_SHORT).show();
                            }
                        }
                    }
                });

     /***
         * 注册VK邀请监听
         */
        SDKManager.getInstance().VKInvite(MainActivity.this, new SDKManager.OnVkInviteListener() {

            @Override
            public void process(String json) {
//                Toast.makeText(MainActivity.this, "VK邀请回调执行"+json, Toast.LENGTH_SHORT).show();
                S.out("VK邀请回调执行" + json);
            }
        });

悬浮窗控制

    @Override
    protected void onResume() {
        super.onResume();
         //获得焦点隐藏悬浮窗
        FxService.initFxService().mFloatView(MainActivity.this, true);
    }

    @Override
    protected void onPause() {
        super.onPause();
        //失去焦点隐藏悬浮窗
        FxService.initFxService().mFloatView(MainActivity.this, false);

    }

注销

     SDKManager.getInstance().LogOff(MainActivity.this);

二 接入AppsFlyer
1 AndroidManifest.xml 中添加

 <receiver android:name="com.appsflyer.MultipleInstallBroadcastReceiver" android:exported="true">
            <intent-filter>
                <action android:name="com.android.vending.INSTALL_REFERRER" />
            </intent-filter>
        </receiver>

        <receiver
            android:name="com.appsflyer.SingleInstallBroadcastReceiver"
            android:exported="true">
            <intent-filter>
                <action android:name="com.android.vending.INSTALL_REFERRER" />
            </intent-filter>
        </receiver>

   <!--  渠道打包   appsflyer Appid   Verizon 默认值  -->

        <meta-data
            android:name="Jei2Sx8SrBkmiwqfQfN5w3"
            android:value="verizon" />

2 SDK的初始化,需要将以下项目添加至onCreate函数中, 替换成您AppsFlyer账户的实际Dev_Key

JLappsFlyer.startTracking(MainActivity.this,imei,"Jei2Sx8SrBkmiwqfQfN5w3");

3设置Customer User ID (用户账户ID)
有些应用会给每个独立用户指定一个的ID(玩家ID或者登陆邮箱等)作为标识其身份唯 一性的标志。可将此ID上报给AppsFlyer,
由此账户ID便可以和其他设备ID建立映射关系。

 JLappsFlyer.setCustomerUserId("MyId");

4 * Deeplinking为re-targeting活动追踪的很重要的部分,如果有re-targeting活动,AppsFlyer强烈建议您使用Deeplinking。
* 如果您需要通过AppsFlyer, 追踪通过深度链接打开应用的Re-targeting活动投放数据,那么请确保每个相关的activity对应OnCreate()方法中都添加了以下的代码:

  JLappsFlyer.sendDeepLinkData(this);

       <intent-filter>
      <action   android:name="android.intent.action.VIEW" />
      <category android:name="android.intent.category.DEFAULT" />
      <category android:name="android.intent.category.BROWSABLE" />
      <data     android:scheme="your unique scheme" />
      </intent-filter>

5支付事件 金额 货币 产品类型 产品ID

 JLappsFlyer.EventsPay(MainActivity.this,100,"USD","产品类型","产品ID");

6 自定义事件 事件名称,事件值

 Map<String, Object> eventValue = new HashMap<String, Object>();
      eventValue.put("UID", "MQ");
      JLappsFlyer.EventsObj(this,"登陆事件",eventValue);

三 接入GoogleAnalytics 统计

1 将下面的依赖关系添加到您的项目一级 build.gradle 中:

classpath 'com.google.gms:google-services:3.0.0'

将此插件添加到应用级 build.gradle 的底部:

apply plugin: 'com.google.gms.google-services'

现在,您需要为 Google Play 服务添加一个依赖关系。为此,请在您应用的 build.gradle 中添加以下内容:

  compile 'com.google.android.gms:play-services-analytics:9.0.0'

在dependencies 上面 加入

repositories {
    mavenCentral()
}

点击下面的按钮即可获取配置文件以将其添加到您的项目中。
该配置文件提供了您的应用的服务专用信息。要获取该文件,您必须为您的应用选择一个现有项目或新建一个项目。此外,您还需要为应用提供一个文件包名称。

GET A CONFIGURATION FILE

将配置文件添加到项目中
将您刚刚下载的 google-services.json 文件复制到您 Android Studio 项目的 app/ 或 mobile/ 目录中。

2您应该将 Application 纳入子类并提供一个可返回应用跟踪器的辅助方法

package com.google.samples.quickstart.analytics;

import android.app.Application;

import com.google.android.gms.analytics.GoogleAnalytics;
import com.google.android.gms.analytics.Tracker;

/**
 * This is a subclass of {@link Application} used to provide shared objects for this app, such as
 * the {@link Tracker}.
 */
public class AnalyticsApplication extends Application {
  private Tracker mTracker;

  /**
   * Gets the default {@link Tracker} for this {@link Application}.
   * @return tracker
   */
  synchronized public Tracker getDefaultTracker() {
    if (mTracker == null) {
      GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
      // To enable debug logging use: adb shell setprop log.tag.GAv4 DEBUG
      mTracker = analytics.newTracker(R.xml.global_tracker);
    }
    return mTracker;
  }
}

Activity 或 Fragment

打开您要跟踪的 Activity。您也可以跟踪 Fragment,但请确保其准确代表屏幕浏览。

替换您要跟踪的 Activity 或 Fragment 的 onCreate 方法来获取共享的 Tracker 实例

AnalyticsApplication application = (AnalyticsApplication) getApplication();
mTracker = application.getDefaultTracker();

mTracker.setScreenName("Image~" + name);
mTracker.send(new HitBuilders.ScreenViewBuilder().build());

向代表屏幕的每个 Activity 或 Fragment 添加跟踪代码。如果您想在 Google Analytics(分析)中区分您应用的不同屏幕浏览数据,请务必在每个 Activity 或 Fragment 内设置一个名称。记录在共享跟踪器上的所有活动会发送最新的屏幕名称,直到这些名称被替换或清除(设置为 null)。

3发送事件
要发送事件,请在跟踪器上设置屏幕字段值,然后发送匹配。下面的示例使用 HitBuilders.EventBuilder 来发送 Event:

mTracker.send(new HitBuilders.EventBuilder()
    .setCategory("Action")
    .setAction("Share")
    .build());

四 Paysstion支付

        /***
                 * 调起Paysstion支付
                 * @param activity
                 * @param APIKey
                 * @param SecretKey
                 * @param amount  金额
                 * @param order   订单号
                 * @param currency 货币
                 * @param Email    邮箱
                 * @param Name     名字
                 * @param Description 订单描述
                 */
             Paysstion.initPaysstion().open(MainActivity.this,
                        "APIKey",
                        "APIKey",
                        1,
                        "123456",
                        "RUB",
                        "",
                        "",
                        "商品名称");

支付结果返回

订单支付结果以Payssion服务器通知为准,当订单支付状态发生变化时Payssion服务器会自动通知到notify_url (应用设置时需要填写)。

重写MainActivity的onActivityResult方法:

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        Log.v(this.getClass().getSimpleName(), "onActivityResult");
        switch (resultCode) {
        case PayssionActivity.RESULT_OK:
            if (null != data) {
                PayResponse response = (PayResponse)data.getSerializableExtra(PayssionActivity.RESULT_DATA);
                if (null != response) {
                    //去服务端查询该笔订单状态,注意订单状态以服务端为准
                } else {
                    //should never go here
                }
            }
            break;
        case PayssionActivity.RESULT_CANCELED:
            //用户取消支付
            break;
        case PayssionActivity.RESULT_ERROR:
            //支付发生错误
            if (null != data) {
                //获取错误信息描述
                String des = data.getStringExtra(PayssionActivity.RESULT_DESCRIPTION);
                Log.v(this.getClass().getSimpleName(), "RESULT_ERROR" + des);
            }
            break;
        }
        super.onActivityResult(requestCode, resultCode, data);
    }

五 facebook 登录,分享 事件

页面统计

// Add to each long-lived activity
@Override
protected void onResume() { 
  super.onResume(); 
  AppEventsLogger.activateApp(this); 
}

// for Android, you should also log app deactivation
@Override
protected void onPause() { 
  super.onPause(); 
  AppEventsLogger.deactivateApp(this);
}

添加自定义事件

AppEventsLogger logger = AppEventsLogger.newLogger(this);

// Add to a button click handler  
logger.logEvent();

facebook登录

              initSDK.SDKManager().setFacebook(MainActivity.this, new initSDK.onMQFacebookListener() {
                    @Override
                    public void Process(Profile profile, String s) {

                        String Token = s;
                        String id = profile.getId();
                        String name = profile.getName();

                        Toast.makeText(MainActivity.this, "名字是" + name, Toast.LENGTH_SHORT).show();

                    }
                });

facebook 分享

                initSDK.SDKManager().setFacebookShare(MainActivity.this, "标题", "描述", "www.taobao.com", new initSDK.onMqFacebookShareLinstener() {
                    @Override
                    public void Process(int i) {

                        //未翻墙的情况  返回 会走成功
                        switch (i) {
                            case initSDK.SUCCESS:

                                Toast.makeText(MainActivity.this, 
                                "分享成功", Toast.LENGTH_SHORT).show();
                                break;
                            case initSDK.CANCEL:

                               "分享取消", Toast.LENGTH_SHORT).show();
                                break;
                            case initSDK.ERROR:

                                Toast.makeText(MainActivity.this, 
                                "分享错误", Toast.LENGTH_SHORT).show();
                                break;
                        }

                    }
                });

六 VK登录 分享 邀请
VK登录

           initSDK.SDKManager().setVKlogin(MainActivity.this, new initSDK.onMQVKLoginListener() {
                    @Override
                    public void process(VKAccessToken res, VKResponse response) {

                        final String userId = res.userId.toString();
                        final String token = res.accessToken.toString();

                        System.out.println("用户数据是" + response.json);

                    }

            });

VK分享

   final Bitmap b = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher);
            initSDK.SDKManager().setVKShare(MainActivity.this, "标题", "内容", b, "www.hao123.com", new initSDK.onMQVKShareLinstener() {
                @Override
                public void process(int code) {
                    switch (code) {
                        case initSDK.SUCCESS:

                            Toast.makeText(MainActivity.this, "分享成功", Toast.LENGTH_SHORT).show();

                            break;
                        case initSDK.CANCEL:

                            Toast.makeText(MainActivity.this, "分享取消", Toast.LENGTH_SHORT).show();


                            break;
                        case initSDK.ERROR:

                            Toast.makeText(MainActivity.this, "分享错误", Toast.LENGTH_SHORT).show();

                            break;
                    }
                }
            });

vk邀请
获取邀请列表

                initSDK.SDKManager().setVKInviteList(MainActivity.this, new initSDK.onMQVKInviteListLinstener() {
                    @Override
                    public void InviteProcess(final List<VKInviteBase> vkInviteBasesListBase) {

                        if (vkInviteBasesListBase == null) {
                            finish();
                            return;
                        }



                    }
                });

发送邀请
参数为 被邀请人VKID

                initSDK.SDKManager().setVKInvite(MainActivity.this, "344667959", new initSDK.onMQVKInviteLinstener() {


                    @Override
                    public void InviteProcess(int code, String s) {
                        switch (code) {
                            case initSDK.SUCCESS:



                                break;
                            case initSDK.ERROR:

                                break;
                        }
                    }
                });
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值