Browse Source

dmp数据添加

huyuguo 5 years ago
parent
commit
c93823ebbc

+ 2 - 2
app/src/main/AndroidManifest.xml

@ -1,8 +1,8 @@
1 1
<?xml version="1.0" encoding="utf-8"?>
2 2
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3 3
    package="com.electric.chargingpile"
4
    android:versionCode="87"
5
    android:versionName="3.4.9">
4
    android:versionCode="88"
5
    android:versionName="3.5.0">
6 6
    <!-- 极光 -->
7 7
    <application
8 8
        android:name=".application.MainApplication"

+ 1 - 0
app/src/main/assets/ShareSDK.xml

@ -49,4 +49,5 @@
49 49
<Wework Enable="false" />
50 50
<HWAccount Enable="false" />
51 51
<Oasis Enable="false" />
52
<XMAccount Enable="false" />
52 53
</DevInfor>

+ 8 - 5
app/src/main/java/com/electric/chargingpile/activity/HomeAdActivity.java

@ -36,7 +36,7 @@ public class HomeAdActivity extends Activity implements View.OnClickListener {
36 36
    private RelativeLayout rl_time, rl_skip;
37 37
    private ImageView iv_bg;
38 38
    private TextView tv_time;
39
    private String imgUrl, url, content, text, icon, is_dui,advertiser,click_url;
39
    private String imgUrl, url, content, text, icon, is_dui, advertiser, click_url;
40 40
    private int time = 3;
41 41
    private Timer timer = new Timer();
42 42
    private TimerTask task;
@ -129,19 +129,20 @@ public class HomeAdActivity extends Activity implements View.OnClickListener {
129 129
                    public void onResponse(String response) {
130 130
                        String show_url = JsonUtils.getKeyResult(response, "show_url");
131 131
                        click_url = JsonUtils.getKeyResult(response, "click_url");
132
                        uploadDmpShow(show_url);
132
                        uploadDmp(show_url);
133 133
                    }
134 134
                });
135 135
    }
136 136
137
    private void uploadDmpShow(String url) {
138
        url = Util.generateDmpUrl(url, getApplicationContext());
137
    private void uploadDmp(String url) {
138
        url = Util.generateDmpUrl(url);
139 139
        OkHttpUtils.get().url(url).build().connTimeOut(3000).readTimeOut(3000)
140 140
                .execute(new StringCallback() {
141 141
                    @Override
142 142
                    public void onError(Call call, Exception e) {
143 143
                        e.printStackTrace();
144 144
                    }
145
145 146
                    @Override
146 147
                    public void onResponse(String response) {
147 148
                    }
@ -189,7 +190,9 @@ public class HomeAdActivity extends Activity implements View.OnClickListener {
189 190
            Intent intent = new Intent(getApplicationContext(), MyWebViewActivity.class);
190 191
            intent.putExtra("url", url);
191 192
            intent.putExtra("advertiser", advertiser);
192
            intent.putExtra("click_url", click_url);
193
            if (advertiser != null && advertiser.equals("1")) {
194
                uploadDmp(click_url);
195
            }
193 196
            startActivity(intent);
194 197
            flag = 1;
195 198
        }

+ 102 - 20
app/src/main/java/com/electric/chargingpile/activity/MainMapActivity.java

@ -117,6 +117,7 @@ import com.electric.chargingpile.util.JsonUtils;
117 117
import com.electric.chargingpile.util.LoadingDialog;
118 118
import com.electric.chargingpile.util.Md5Util;
119 119
import com.electric.chargingpile.util.OkHttpUtil;
120
import com.electric.chargingpile.util.PhoneUtils;
120 121
import com.electric.chargingpile.util.ScreenUtils;
121 122
import com.electric.chargingpile.util.SharedPreferencesUtil;
122 123
import com.electric.chargingpile.util.ToastUtil;
@ -367,6 +368,7 @@ public class MainMapActivity extends Activity implements LocationSource, AMapLoc
367 368
368 369
    private static final int RC_CAMERA_PERM = 123;
369 370
    private static final int RC_SAVE_PERM = 124;
371
    private static final int READ_PHONE_STATE = 125;
370 372
371 373
    private UpdateDialog updateDialog;
372 374
    //标识,用于判断是否只显示一次定位信息和用户重新定位
@ -445,6 +447,12 @@ public class MainMapActivity extends Activity implements LocationSource, AMapLoc
445 447
                                        rl_privacy_protocol.setVisibility(View.VISIBLE);
446 448
                                    } else {
447 449
                                        rl_ad.setVisibility(View.VISIBLE);
450
                                        for (Adin item : listAdin) {
451
                                            if (item.getAdvertiser().equals("1")) {
452
                                                loadDmpData();
453
                                                break;
454
                                            }
455
                                        }
448 456
                                    }
449 457
                                } else {
450 458
                                    if (!showedPrivateProtocol) {
@ -775,6 +783,7 @@ public class MainMapActivity extends Activity implements LocationSource, AMapLoc
775 783
        BarColorUtil.initStatusBarColor(MainMapActivity.this);
776 784
        m = this;
777 785
786
        getDeviceId();
778 787
//        mquery = new WeatherSearchQuery("北京", WeatherSearchQuery.WEATHER_TYPE_FORECAST);
779 788
//        mweathersearch=new WeatherSearch(this);
780 789
//        mweathersearch.setOnWeatherSearchListener(this);
@ -1804,14 +1813,6 @@ public class MainMapActivity extends Activity implements LocationSource, AMapLoc
1804 1813
1805 1814
//                Log.e("123456==", url);
1806 1815
                if (MainApplication.haveActivity == false) {
1807
                    TelephonyManager telephonyManager = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);
1808
                    String imei;
1809
                    if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {
1810
                        imei = "";
1811
                    } else {
1812
                        imei = telephonyManager.getDeviceId();
1813
                    }
1814
//                Log.e("IMEI===", imei);
1815 1816
                    getBaidu(amapLocation.getLongitude(), amapLocation.getLatitude());
1816 1817
                    String uid;
1817 1818
                    if (MainApplication.isLogin()) {
@ -1822,7 +1823,7 @@ public class MainMapActivity extends Activity implements LocationSource, AMapLoc
1822 1823
1823 1824
                    String url = "{\"fun\":\"dingwei\",\"poi_jing\":" + "\"" + String.format("%.6f", bd_lon) +
1824 1825
                            "\"" + ",\"poi_wei\":" + "\"" + String.format("%.6f", bd_lat) + "\"" + ",\"imei\":"
1825
                            + "\"" + "android_" + imei + "\"" + ",\"timer\":" + "\"" + Token
1826
                            + "\"" + "android_" + PhoneUtils.getDeviceId() + "\"" + ",\"timer\":" + "\"" + Token
1826 1827
                            + "\"" + ",\"registration_id\":" + "\"" + MainApplication.push_id + "\""
1827 1828
                            + ",\"userid\":" + "\"" + uid + "\"" + "}";
1828 1829
                    eteLocation(url);
@ -3491,16 +3492,17 @@ public class MainMapActivity extends Activity implements LocationSource, AMapLoc
3491 3492
3492 3493
    @Override
3493 3494
    public void onPermissionsGranted(int requestCode, List<String> perms) {
3494
//        LogUtils.e("wwwwwww");
3495
        Intent iintent = new Intent(getApplicationContext(), com.google.zxing.client.android.CaptureActivity.class);
3496
        iintent.putExtra("url", MainApplication.url);
3497
        iintent.putExtra("user_id", MainApplication.userId);
3498
        iintent.putExtra("user_password", MainApplication.userPassword);
3499
        iintent.putExtra("user_phone", MainApplication.userPhone);
3500
        iintent.putExtra("cha", MainMapActivity.cha);
3501
        iintent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
3502
        startActivity(iintent);
3503
        overridePendingTransition(0, 0);
3495
        if (requestCode == RC_CAMERA_PERM) {
3496
            Intent iintent = new Intent(getApplicationContext(), com.google.zxing.client.android.CaptureActivity.class);
3497
            iintent.putExtra("url", MainApplication.url);
3498
            iintent.putExtra("user_id", MainApplication.userId);
3499
            iintent.putExtra("user_password", MainApplication.userPassword);
3500
            iintent.putExtra("user_phone", MainApplication.userPhone);
3501
            iintent.putExtra("cha", MainMapActivity.cha);
3502
            iintent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
3503
            startActivity(iintent);
3504
            overridePendingTransition(0, 0);
3505
        }
3504 3506
    }
3505 3507
3506 3508
    @Override
@ -3508,9 +3510,10 @@ public class MainMapActivity extends Activity implements LocationSource, AMapLoc
3508 3510
        for (String s : perms) {
3509 3511
            LogUtils.e(s);
3510 3512
        }
3513
3511 3514
        if (EasyPermissions.somePermissionPermanentlyDenied(this, perms)) {
3512 3515
            new AppSettingsDialog.Builder(MainMapActivity.this,
3513
                    "该功能需要开启摄像头权限,是否前往开启?").build().show();
3516
                    "该功能需要开启摄像头权限,是否前往开启?").build().show();
3514 3517
        }
3515 3518
    }
3516 3519
@ -3518,6 +3521,26 @@ public class MainMapActivity extends Activity implements LocationSource, AMapLoc
3518 3521
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
3519 3522
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
3520 3523
        EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this);
3524
3525
        switch (requestCode) {
3526
            case READ_PHONE_STATE:
3527
                if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
3528
                    if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {
3529
                        return;
3530
                    }
3531
                    TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
3532
                    String deviceId = "";
3533
                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
3534
                        deviceId = telephonyManager.getImei();
3535
                    } else {
3536
                        deviceId = telephonyManager.getDeviceId();
3537
                    }
3538
                    ProfileManager.getInstance().setDeviceId(deviceId);
3539
                } else {
3540
                    ProfileManager.getInstance().setDeviceId(ProfileManager.getInstance().getTempDeviceId());
3541
                }
3542
                break;
3543
        }
3521 3544
    }
3522 3545
3523 3546
    private boolean hasCameraPermission() {
@ -6213,5 +6236,64 @@ public class MainMapActivity extends Activity implements LocationSource, AMapLoc
6213 6236
        });
6214 6237
    }
6215 6238
6239
    private void getDeviceId() {
6240
        String deviceId = ProfileManager.getInstance().getDeviceId();
6241
        if (!TextUtils.isEmpty(deviceId)) {
6242
            return;
6243
        }
6244
6245
        TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
6246
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
6247
            int checkPermission = ActivityCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.READ_PHONE_STATE);
6248
            if (checkPermission != PackageManager.PERMISSION_GRANTED) { // 未授权,去授权
6249
                ActivityCompat.requestPermissions(MainMapActivity.this, new String[]{Manifest.permission.READ_PHONE_STATE},READ_PHONE_STATE);
6250
            } else {
6251
                deviceId = telephonyManager.getImei();
6252
            }
6253
        } else {
6254
            int checkPermission = ActivityCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.READ_PHONE_STATE);
6255
            if (checkPermission != PackageManager.PERMISSION_GRANTED) { // 未授权,去授权
6256
                ActivityCompat.requestPermissions(MainMapActivity.this, new String[]{Manifest.permission.READ_PHONE_STATE},READ_PHONE_STATE);
6257
            } else {
6258
                deviceId = telephonyManager.getDeviceId();
6259
            }
6260
        }
6261
        if (!TextUtils.isEmpty(deviceId )) {
6262
            ProfileManager.getInstance().setDeviceId(deviceId);
6263
        }
6264
    }
6265
6266
    private void loadDmpData() {
6267
        OkHttpUtils.get().url(MainApplication.url + "/zhannew/xd_url.php").build().connTimeOut(3000).readTimeOut(3000)
6268
                .execute(new StringCallback() {
6269
                    @Override
6270
                    public void onError(Call call, Exception e) {
6271
                        e.printStackTrace();
6272
                    }
6273
6274
                    @Override
6275
                    public void onResponse(String response) {
6276
                        String show_url = JsonUtils.getKeyResult(response, "show_url");
6277
                        String click_url = JsonUtils.getKeyResult(response, "click_url");
6278
                        uploadDmp(show_url);
6279
                        sav.setClick_url(click_url);
6280
                    }
6281
                });
6282
    }
6283
6284
    private void uploadDmp(String url) {
6285
        url = Util.generateDmpUrl(url);
6286
        OkHttpUtils.get().url(url).build().connTimeOut(3000).readTimeOut(3000)
6287
                .execute(new StringCallback() {
6288
                    @Override
6289
                    public void onError(Call call, Exception e) {
6290
                        e.printStackTrace();
6291
                    }
6292
6293
                    @Override
6294
                    public void onResponse(String response) {
6295
                    }
6296
                });
6297
    }
6216 6298
6217 6299
}

+ 2 - 15
app/src/main/java/com/electric/chargingpile/activity/MyWebViewActivity.java

@ -54,6 +54,7 @@ import com.electric.chargingpile.util.ImageUitl;
54 54
import com.electric.chargingpile.util.JsonUtils;
55 55
import com.electric.chargingpile.util.MediaUtility;
56 56
import com.electric.chargingpile.util.ToastUtil;
57
import com.electric.chargingpile.util.Util;
57 58
import com.electric.chargingpile.view.AlertDialogTwo;
58 59
import com.google.gson.Gson;
59 60
import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet;
@ -92,7 +93,6 @@ public class MyWebViewActivity extends Activity implements PlatformActionListene
92 93
    private String index = "0";
93 94
    private String mUrl = "";
94 95
    private String advertiser;
95
    private String click_url;
96 96
    private ArrayList<String> list = new ArrayList<>();
97 97
    private String refreshUrl = "";
98 98
    private String currentUrl = "";
@ -123,25 +123,12 @@ public class MyWebViewActivity extends Activity implements PlatformActionListene
123 123
    private void getIntentData() {
124 124
        mUrl = getIntent().getStringExtra("url");
125 125
        advertiser = getIntent().getStringExtra("advertiser");
126
        click_url = getIntent().getStringExtra("click_url");
127 126
        Log.e(TAG, "getIntentData: " + mUrl);
128 127
        if (advertiser!=null && advertiser.equals("1")) {
129
            uploadDmpClick(click_url);
128
            mUrl = Util.generateDmpUrl(mUrl);
130 129
        }
131 130
    }
132 131
133
    private void uploadDmpClick(String url) {
134
        OkHttpUtils.get().url(url).build().connTimeOut(6000).readTimeOut(6000)
135
                .execute(new StringCallback() {
136
                    @Override
137
                    public void onError(Call call, Exception e) {
138
                        e.printStackTrace();
139
                    }
140
                    @Override
141
                    public void onResponse(String response) {
142
                    }
143
                });
144
    }
145 132
146 133
    private void initView() {
147 134
        rl_point = (RelativeLayout) findViewById(R.id.rl_point);

+ 3 - 0
app/src/main/java/com/electric/chargingpile/application/MainApplication.java

@ -10,6 +10,8 @@ import android.os.Bundle;
10 10
import android.os.Environment;
11 11
import android.os.StrictMode;
12 12
import android.support.multidex.MultiDexApplication;
13
import android.telephony.TelephonyManager;
14
import android.text.TextUtils;
13 15
import android.util.Log;
14 16

15 17
import com.amap.api.maps.model.LatLng;
@ -207,6 +209,7 @@ public class MainApplication extends MultiDexApplication {
207 209
        loginRemind();
208 210
        setFestival();
209 211
        initSmallVideo();
212

210 213
    }
211 214

212 215
    public static MainApplication getInstance() {

+ 10 - 0
app/src/main/java/com/electric/chargingpile/data/Adin.java

@ -17,6 +17,16 @@ public class Adin implements Serializable {
17 17
    private String timer;
18 18
    private int is_dui;
19 19
20
    public String getAdvertiser() {
21
        return advertiser;
22
    }
23
24
    public void setAdvertiser(String advertiser) {
25
        this.advertiser = advertiser;
26
    }
27
28
    private String advertiser;
29
20 30
    public int getIs_dui() {
21 31
        return is_dui;
22 32
    }

+ 25 - 0
app/src/main/java/com/electric/chargingpile/manager/ProfileManager.java

@ -3,6 +3,9 @@ package com.electric.chargingpile.manager;
3 3
import android.content.Context;
4 4
import android.util.Log;
5 5

6
import com.electric.chargingpile.application.MainApplication;
7
import com.electric.chargingpile.util.PhoneUtils;
8

6 9
public class ProfileManager {
7 10

8 11
    private static final String KEY_USERNAME = "key_username";
@ -64,8 +67,11 @@ public class ProfileManager {
64 67
    private static final String KEY_CLICKED_USER_PUBLISH_TOPIC = "key_clicked_user_publish_topic";
65 68
    private static final String KEY_CLICKED_USER_PUBLISH_ROLE = "key_clicked_user_publish_role";
66 69
    private static final String KEY_MAKE_SURE_NETWORK_FOR_VIDEO = "key_make_sure_network_for_video";
70
    private static final String KEY_DEVICE_ID = "key_device_id";
67 71

68 72
    private static ProfileManager instance;
73
    private String deviceId;
74
    private String tempDeviceId;
69 75

70 76
    public static ProfileManager getInstance() {
71 77
        if (instance == null) {
@ -626,4 +632,23 @@ public class ProfileManager {
626 632
    public void setMsgChargingStatusNo(Context context, int id) {
627 633
        PreferenceManager.getInstance(context).putInt(KEY_MESSAGE_STATUS_CHARGING_NO, id);
628 634
    }
635

636
    public void setDeviceId(String value) {
637
        PreferenceManager.getInstance(MainApplication.context).putString(KEY_DEVICE_ID, value);
638
        deviceId = value;
639
    }
640

641
    public String getDeviceId() {
642
        if (deviceId == null) {
643
            deviceId = PreferenceManager.getInstance(MainApplication.context).getString(KEY_DEVICE_ID, "");
644
        }
645
        return deviceId;
646
    }
647

648
    public String getTempDeviceId() {
649
        if (tempDeviceId == null) {
650
            tempDeviceId = PhoneUtils.getGUID();
651
        }
652
        return tempDeviceId;
653
    }
629 654
}

+ 83 - 0
app/src/main/java/com/electric/chargingpile/util/PhoneUtils.java

@ -0,0 +1,83 @@
1
package com.electric.chargingpile.util;
2

3
import android.content.Context;
4
import android.content.pm.PackageInfo;
5
import android.content.pm.PackageManager;
6
import android.telephony.TelephonyManager;
7
import android.text.TextUtils;
8

9
import com.electric.chargingpile.manager.ProfileManager;
10

11
import java.security.SecureRandom;
12
import java.util.Random;
13

14
/**
15
 * Created by lenovo on 2016/10/28.
16
 */
17

18
public class PhoneUtils {
19

20
    /**
21
     * 获取App版本号
22
     *
23
     * @param context
24
     * @return
25
     */
26
    public static String getAppVersion(Context context) {
27
        if (context == null) return "";
28
        PackageManager mPackageManager = context.getPackageManager();
29
        try {
30
            PackageInfo info = mPackageManager.getPackageInfo(context.getPackageName(), 0);
31
            return info.versionName;
32
        } catch (Exception e) {
33
            return "Unknow";
34
        }
35
    }
36

37

38
    /**
39
     * 获取设备唯一标识 imei meid
40
     *
41
     * @return
42
     */
43
    public static final String getDeviceId() {
44
        String deviceId = ProfileManager.getInstance().getDeviceId();
45
        if ("".equals(deviceId)) {
46
            deviceId = ProfileManager.getInstance().getTempDeviceId();
47
        }
48
        return deviceId;
49
    }
50

51
    public static boolean isReadPhone = true;
52

53
    /**
54
     * 生成16位不重复的随机数,含数字+大小写
55
     */
56
    public static final String getGUID() {
57
        StringBuilder uid = new StringBuilder();
58
        //产生16位的强随机数
59
        Random rd = new SecureRandom();
60
        for (int i = 0; i < 16; i++) {
61
            //产生0-2的3位随机数
62
            int type = rd.nextInt(3);
63
            switch (type) {
64
                case 0:
65
                    //0-9的随机数
66
                    uid.append(rd.nextInt(10));
67
                    break;
68
                case 1:
69
                    //ASCII在65-90之间为大写,获取大写随机
70
                    uid.append((char) (rd.nextInt(25) + 65));
71
                    break;
72
                case 2:
73
                    //ASCII在97-122之间为小写,获取小写随机
74
                    uid.append((char) (rd.nextInt(25) + 97));
75
                    break;
76
                default:
77
                    break;
78
            }
79
        }
80
        return uid.toString();
81
    }
82

83
}

+ 105 - 0
app/src/main/java/com/electric/chargingpile/util/Util.java

@ -3,7 +3,10 @@ package com.electric.chargingpile.util;
3 3
import android.app.Activity;
4 4
import android.content.Context;
5 5
import android.graphics.Color;
6
import android.net.wifi.WifiInfo;
7
import android.net.wifi.WifiManager;
6 8
import android.os.Build;
9
import android.provider.Settings;
7 10
import android.support.v7.app.ActionBar;
8 11
import android.support.v7.app.AppCompatActivity;
9 12
import android.text.TextUtils;
@ -15,6 +18,7 @@ import com.amap.api.maps.AMap;
15 18
import com.amap.api.maps.model.CustomMapStyleOptions;
16 19
import com.blankj.utilcode.util.StringUtils;
17 20
import com.electric.chargingpile.activity.MainMapActivity;
21
import com.electric.chargingpile.application.MainApplication;
18 22
import com.electric.chargingpile.data.Zhan;
19 23
import com.electric.chargingpile.data.Zhuang;
20 24
import com.electric.chargingpile.manager.ProfileManager;
@ -23,12 +27,20 @@ import java.io.File;
23 27
import java.io.FileOutputStream;
24 28
import java.io.IOException;
25 29
import java.io.InputStream;
30
import java.io.InputStreamReader;
31
import java.io.LineNumberReader;
26 32
import java.io.UnsupportedEncodingException;
33
import java.net.InetAddress;
34
import java.net.NetworkInterface;
35
import java.net.SocketException;
27 36
import java.net.URLEncoder;
28 37
import java.text.DecimalFormat;
29 38
import java.util.ArrayList;
39
import java.util.Collections;
40
import java.util.Enumeration;
30 41
import java.util.HashMap;
31 42
import java.util.List;
43
import java.util.Locale;
32 44
import java.util.Map;
33 45
import java.util.Random;
34 46

@ -388,6 +400,99 @@ public class Util {
388 400
        aMap.setCustomMapStyle(customMapStyleOptions);
389 401
    }
390 402

403
    public static String generateDmpUrl(String url) {
404
        url = url.replace("__OS__", "android");
405
        url = url.replace("__IMEI__", Base64.encode(PhoneUtils.getDeviceId().getBytes()));
406
        String mac = getMac(MainApplication.context);
407
        if (mac != null) {
408
            mac = mac.replace(":", "");
409
            mac = mac.toUpperCase();
410
            url = url.replace("__MAC__", Base64.encode(mac.getBytes()));
411
        }
412

413
        String androidId = getAndroidId();
414
        if (androidId != null) {
415
            url = url.replace("__ANDROIDID__", Base64.encode(androidId.getBytes()));
416
        }
417

418
        url = url.replace("__APP__", "com.electric.chargingpile");
419

420
        url = url.replace("__DVCBRAND__", Build.BRAND);
421
        url = url.replace("__DVCMODEL__", Build.MODEL);
422

423
        return url;
424
    }
425

426
    private static String getAndroidId() {
427
        String androidId = null;
428
        try {
429
            androidId = Settings.System.getString(MainApplication.context.getContentResolver(), Settings.Secure.ANDROID_ID);
430
        } catch (Exception e) {
431
            e.printStackTrace();
432
        }
433

434
        return androidId;
435
    }
391 436

437
    /**
438
     * 获取wifi的mac地址,适配到android Q
439
     * @param paramContext
440
     * @return
441
     */
442
    private static String getMac(Context paramContext) {
443
        try {
444
            if (Build.VERSION.SDK_INT >= 23) {
445
                String str = getMacMoreThanM(paramContext);
446
                if (!TextUtils.isEmpty(str))
447
                    return str;
448
            }
449
            // 6.0以下手机直接获取wifi的mac地址即可
450
            WifiManager wifiManager = (WifiManager)paramContext.getSystemService("wifi");
451
            WifiInfo wifiInfo = wifiManager.getConnectionInfo();
452
            if (wifiInfo != null)
453
                return wifiInfo.getMacAddress();
454
        } catch (Throwable throwable) {
455
            throwable.printStackTrace();
456
        }
457
        return null;
458
    }
459

460
    /**
461
     * android 6.0+获取wifi的mac地址
462
     * @param paramContext
463
     * @return
464
     */
465
    private static String getMacMoreThanM(Context paramContext) {
466
        try {
467
            //获取本机器所有的网络接口
468
            Enumeration enumeration = NetworkInterface.getNetworkInterfaces();
469
            while (enumeration.hasMoreElements()) {
470
                NetworkInterface networkInterface = (NetworkInterface)enumeration.nextElement();
471
                //获取硬件地址,一般是MAC
472
                byte[] arrayOfByte = networkInterface.getHardwareAddress();
473
                if (arrayOfByte == null || arrayOfByte.length == 0) {
474
                    continue;
475
                }
476

477
                StringBuilder stringBuilder = new StringBuilder();
478
                for (byte b : arrayOfByte) {
479
                    //格式化为:两位十六进制加冒号的格式,若是不足两位,补0
480
                    stringBuilder.append(String.format("%02X:", new Object[] { Byte.valueOf(b) }));
481
                }
482
                if (stringBuilder.length() > 0) {
483
                    //删除后面多余的冒号
484
                    stringBuilder.deleteCharAt(stringBuilder.length() - 1);
485
                }
486
                String str = stringBuilder.toString();
487
                // wlan0:无线网卡 eth0:以太网卡
488
                if (networkInterface.getName().equals("wlan0")) {
489
                    return str;
490
                }
491
            }
492
        } catch (SocketException socketException) {
493
            return null;
494
        }
495
        return null;
496
    }
392 497

393 498
}

+ 31 - 0
app/src/main/java/com/electric/chargingpile/view/SlideAdView.java

@ -38,6 +38,7 @@ import com.electric.chargingpile.data.Adin;
38 38
import com.electric.chargingpile.data.ChargingShareBean;
39 39
import com.electric.chargingpile.util.DES3;
40 40
import com.electric.chargingpile.util.JsonUtils;
41
import com.electric.chargingpile.util.Util;
41 42
import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;
42 43
import com.nostra13.universalimageloader.core.ImageLoader;
43 44
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
@ -107,6 +108,15 @@ public class SlideAdView extends FrameLayout {
107 108
    private Context context;
108 109
109 110
    private static String tag = "ResolvePicture";
111
    private String click_url;
112
113
    public String getClick_url() {
114
        return click_url;
115
    }
116
117
    public void setClick_url(String click_url) {
118
        this.click_url = click_url;
119
    }
110 120
111 121
    //Handler
112 122
    private Handler handler = new Handler() {
@ -256,7 +266,13 @@ public class SlideAdView extends FrameLayout {
256 266
                } else {
257 267
                    url = mAdin.getUrl() + "?cdzshareid=" + mAdin.getId();
258 268
                }
269
                String advertiser = mAdin.getAdvertiser();
270
                if (advertiser != null && advertiser.equals("1")) {
271
                    intent.putExtra("advertiser", advertiser);
272
                    uploadDmp(click_url);
273
                }
259 274
                intent.putExtra("url", url);
275
260 276
                Log.e(TAG, "imageBrower: url=" + url);
261 277
                context.startActivity(intent);
262 278
            }
@ -785,4 +801,19 @@ public class SlideAdView extends FrameLayout {
785 801
        });
786 802
        platform.share(paramsToShare);
787 803
    }
804
805
    private void uploadDmp(String url) {
806
        url = Util.generateDmpUrl(url);
807
        OkHttpUtils.get().url(url).build().connTimeOut(3000).readTimeOut(3000)
808
                .execute(new StringCallback() {
809
                    @Override
810
                    public void onError(Call call, Exception e) {
811
                        e.printStackTrace();
812
                    }
813
814
                    @Override
815
                    public void onResponse(String response) {
816
                    }
817
                });
818
    }
788 819
}