ADUtils.java 4.25 KB
package com.cnlive.goldenline.util;

import android.app.Activity;
import android.content.Context;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.support.annotation.NonNull;
import android.telephony.TelephonyManager;
import android.util.DisplayMetrics;
import android.util.Log;
import android.webkit.WebSettings;
import android.webkit.WebView;

import com.cnlive.goldenline.Configs;
import com.cnlive.goldenline.api.CmsAPI;
import com.cnlive.goldenline.model.admodel.AdParent;

import retrofit.Callback;
import retrofit.RetrofitError;
import retrofit.client.Response;

/**
 * Created by Dean.Zhang on 2016-09-30.
 */
public class ADUtils {

    public static AdParent getAdData(@NonNull Activity activity, String type){
        CmsAPI cmsAPI=RestAdapterUtils.getRestAPI(Configs.Advertisement,CmsAPI.class);
        DisplayMetrics metrics = new DisplayMetrics();
        activity.getWindowManager().getDefaultDisplay().getMetrics(metrics);
        int w =metrics.widthPixels; // 屏幕宽度
        int h = metrics.heightPixels; // 屏幕高度
        String osv=android.os.Build.VERSION.RELEASE;  //操作系统版本号
        String make= android.os.Build.MANUFACTURER;  //制造商
        String model= android.os.Build.MODEL;  //手机型号
        String ip= ADUtils.getLocalIpAddress(activity);  //ip
        String mac=ADUtils.getMacAddress(activity);    //安卓手机mac码
        String ua=ADUtils.getUA(activity);   //获取设备ua
        String did=ADUtils.getDeviceId(activity);

        cmsAPI.getAdBannerData(type,
                "android",
                osv,      //操作系统版本号
                "46000",  //运营商类型
                "2",      //设备类型
                "2",   //网络类型
                "18205253727",  //手机号码
                ip,  //ip
                mac,    //安卓手机mac码
                make,     //制造商
                model,      //设备型号
                h+"",  //设备屏幕高度
                w+"",  //设备屏幕宽度
                ua,     //用户浏览器信息
                did,    //imei
                new Callback<AdParent>() {
                    @Override
                    public void success(@NonNull AdParent adBannerFullscreen, @NonNull Response response) {
                        Log.i("TAG","url=="+response.getUrl()+"\n 获取广告数据==="+adBannerFullscreen.toString());
                    }

                    @Override
                    public void failure(@NonNull RetrofitError error) {
                        Log.i("TAG","数据异常!==="+error.getUrl());
                    }
                });

        return null;
    }




    //获取网络ip
    @NonNull
    public static String getLocalIpAddress(@NonNull Context context){
        //获取wifi服务
        WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
        //判断wifi是否开启
        if (!wifiManager.isWifiEnabled()) {
            wifiManager.setWifiEnabled(true);
        }
        WifiInfo wifiInfo = wifiManager.getConnectionInfo();
        int ipAddress = wifiInfo.getIpAddress();
        String ip = intToIp(ipAddress);
        return ip;
    }
    @NonNull
    private static String intToIp(int i) {
        return (i & 0xFF ) + "." +
                ((i >> 8 ) & 0xFF) + "." +
                ((i >> 16 ) & 0xFF) + "." +
                ( i >> 24 & 0xFF) ;
    }

    //安卓手机mac码
    public static String getMacAddress(@NonNull Context context){
        String result = "";
        WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
        WifiInfo wifiInfo = wifiManager.getConnectionInfo();
        result = wifiInfo.getMacAddress();
        return result;
    }

    //获取设备浏览器ua
    public static String getUA(Context context){
        WebView webview= new WebView(context);
        webview.layout(0, 0, 0, 0);
        WebSettings settings = webview.getSettings();
        String ua = settings.getUserAgentString();
        return ua;
    }

    public static String getDeviceId(@NonNull Context context){
        TelephonyManager tm = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
        String imei = tm.getDeviceId();
        return imei;
    }

}