Browse Source

dmp数据添加

huyuguo 5 years ago
parent
commit
c93823ebbc

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

1
<?xml version="1.0" encoding="utf-8"?>
1
<?xml version="1.0" encoding="utf-8"?>
2
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
2
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3
    package="com.electric.chargingpile"
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
    <application
7
    <application
8
        android:name=".application.MainApplication"
8
        android:name=".application.MainApplication"

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

49
<Wework Enable="false" />
49
<Wework Enable="false" />
50
<HWAccount Enable="false" />
50
<HWAccount Enable="false" />
51
<Oasis Enable="false" />
51
<Oasis Enable="false" />
52
<XMAccount Enable="false" />
52
</DevInfor>
53
</DevInfor>

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

36
    private RelativeLayout rl_time, rl_skip;
36
    private RelativeLayout rl_time, rl_skip;
37
    private ImageView iv_bg;
37
    private ImageView iv_bg;
38
    private TextView tv_time;
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
    private int time = 3;
40
    private int time = 3;
41
    private Timer timer = new Timer();
41
    private Timer timer = new Timer();
42
    private TimerTask task;
42
    private TimerTask task;
129
                    public void onResponse(String response) {
129
                    public void onResponse(String response) {
130
                        String show_url = JsonUtils.getKeyResult(response, "show_url");
130
                        String show_url = JsonUtils.getKeyResult(response, "show_url");
131
                        click_url = JsonUtils.getKeyResult(response, "click_url");
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
        OkHttpUtils.get().url(url).build().connTimeOut(3000).readTimeOut(3000)
139
        OkHttpUtils.get().url(url).build().connTimeOut(3000).readTimeOut(3000)
140
                .execute(new StringCallback() {
140
                .execute(new StringCallback() {
141
                    @Override
141
                    @Override
142
                    public void onError(Call call, Exception e) {
142
                    public void onError(Call call, Exception e) {
143
                        e.printStackTrace();
143
                        e.printStackTrace();
144
                    }
144
                    }
145
145
                    @Override
146
                    @Override
146
                    public void onResponse(String response) {
147
                    public void onResponse(String response) {
147
                    }
148
                    }
189
            Intent intent = new Intent(getApplicationContext(), MyWebViewActivity.class);
190
            Intent intent = new Intent(getApplicationContext(), MyWebViewActivity.class);
190
            intent.putExtra("url", url);
191
            intent.putExtra("url", url);
191
            intent.putExtra("advertiser", advertiser);
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
            startActivity(intent);
196
            startActivity(intent);
194
            flag = 1;
197
            flag = 1;
195
        }
198
        }

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

117
import com.electric.chargingpile.util.LoadingDialog;
117
import com.electric.chargingpile.util.LoadingDialog;
118
import com.electric.chargingpile.util.Md5Util;
118
import com.electric.chargingpile.util.Md5Util;
119
import com.electric.chargingpile.util.OkHttpUtil;
119
import com.electric.chargingpile.util.OkHttpUtil;
120
import com.electric.chargingpile.util.PhoneUtils;
120
import com.electric.chargingpile.util.ScreenUtils;
121
import com.electric.chargingpile.util.ScreenUtils;
121
import com.electric.chargingpile.util.SharedPreferencesUtil;
122
import com.electric.chargingpile.util.SharedPreferencesUtil;
122
import com.electric.chargingpile.util.ToastUtil;
123
import com.electric.chargingpile.util.ToastUtil;
367
368
368
    private static final int RC_CAMERA_PERM = 123;
369
    private static final int RC_CAMERA_PERM = 123;
369
    private static final int RC_SAVE_PERM = 124;
370
    private static final int RC_SAVE_PERM = 124;
371
    private static final int READ_PHONE_STATE = 125;
370
372
371
    private UpdateDialog updateDialog;
373
    private UpdateDialog updateDialog;
372
    //标识,用于判断是否只显示一次定位信息和用户重新定位
374
    //标识,用于判断是否只显示一次定位信息和用户重新定位
445
                                        rl_privacy_protocol.setVisibility(View.VISIBLE);
447
                                        rl_privacy_protocol.setVisibility(View.VISIBLE);
446
                                    } else {
448
                                    } else {
447
                                        rl_ad.setVisibility(View.VISIBLE);
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
                                } else {
457
                                } else {
450
                                    if (!showedPrivateProtocol) {
458
                                    if (!showedPrivateProtocol) {
775
        BarColorUtil.initStatusBarColor(MainMapActivity.this);
783
        BarColorUtil.initStatusBarColor(MainMapActivity.this);
776
        m = this;
784
        m = this;
777
785
786
        getDeviceId();
778
//        mquery = new WeatherSearchQuery("北京", WeatherSearchQuery.WEATHER_TYPE_FORECAST);
787
//        mquery = new WeatherSearchQuery("北京", WeatherSearchQuery.WEATHER_TYPE_FORECAST);
779
//        mweathersearch=new WeatherSearch(this);
788
//        mweathersearch=new WeatherSearch(this);
780
//        mweathersearch.setOnWeatherSearchListener(this);
789
//        mweathersearch.setOnWeatherSearchListener(this);
1804
1813
1805
//                Log.e("123456==", url);
1814
//                Log.e("123456==", url);
1806
                if (MainApplication.haveActivity == false) {
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
                    getBaidu(amapLocation.getLongitude(), amapLocation.getLatitude());
1816
                    getBaidu(amapLocation.getLongitude(), amapLocation.getLatitude());
1816
                    String uid;
1817
                    String uid;
1817
                    if (MainApplication.isLogin()) {
1818
                    if (MainApplication.isLogin()) {
1822
1823
1823
                    String url = "{\"fun\":\"dingwei\",\"poi_jing\":" + "\"" + String.format("%.6f", bd_lon) +
1824
                    String url = "{\"fun\":\"dingwei\",\"poi_jing\":" + "\"" + String.format("%.6f", bd_lon) +
1824
                            "\"" + ",\"poi_wei\":" + "\"" + String.format("%.6f", bd_lat) + "\"" + ",\"imei\":"
1825
                            "\"" + ",\"poi_wei\":" + "\"" + String.format("%.6f", bd_lat) + "\"" + ",\"imei\":"
1825
                            + "\"" + "android_" + imei + "\"" + ",\"timer\":" + "\"" + Token
1826
                            + "\"" + "android_" + PhoneUtils.getDeviceId() + "\"" + ",\"timer\":" + "\"" + Token
1826
                            + "\"" + ",\"registration_id\":" + "\"" + MainApplication.push_id + "\""
1827
                            + "\"" + ",\"registration_id\":" + "\"" + MainApplication.push_id + "\""
1827
                            + ",\"userid\":" + "\"" + uid + "\"" + "}";
1828
                            + ",\"userid\":" + "\"" + uid + "\"" + "}";
1828
                    eteLocation(url);
1829
                    eteLocation(url);
3491
3492
3492
    @Override
3493
    @Override
3493
    public void onPermissionsGranted(int requestCode, List<String> perms) {
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
    @Override
3508
    @Override
3508
        for (String s : perms) {
3510
        for (String s : perms) {
3509
            LogUtils.e(s);
3511
            LogUtils.e(s);
3510
        }
3512
        }
3513
3511
        if (EasyPermissions.somePermissionPermanentlyDenied(this, perms)) {
3514
        if (EasyPermissions.somePermissionPermanentlyDenied(this, perms)) {
3512
            new AppSettingsDialog.Builder(MainMapActivity.this,
3515
            new AppSettingsDialog.Builder(MainMapActivity.this,
3513
                    "该功能需要开启摄像头权限,是否前往开启?").build().show();
3516
                    "该功能需要开启摄像头权限,是否前往开启?").build().show();
3514
        }
3517
        }
3515
    }
3518
    }
3516
3519
3518
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
3521
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
3519
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
3522
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
3520
        EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this);
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
    private boolean hasCameraPermission() {
3546
    private boolean hasCameraPermission() {
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
import com.electric.chargingpile.util.JsonUtils;
54
import com.electric.chargingpile.util.JsonUtils;
55
import com.electric.chargingpile.util.MediaUtility;
55
import com.electric.chargingpile.util.MediaUtility;
56
import com.electric.chargingpile.util.ToastUtil;
56
import com.electric.chargingpile.util.ToastUtil;
57
import com.electric.chargingpile.util.Util;
57
import com.electric.chargingpile.view.AlertDialogTwo;
58
import com.electric.chargingpile.view.AlertDialogTwo;
58
import com.google.gson.Gson;
59
import com.google.gson.Gson;
59
import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet;
60
import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet;
92
    private String index = "0";
93
    private String index = "0";
93
    private String mUrl = "";
94
    private String mUrl = "";
94
    private String advertiser;
95
    private String advertiser;
95
    private String click_url;
96
    private ArrayList<String> list = new ArrayList<>();
96
    private ArrayList<String> list = new ArrayList<>();
97
    private String refreshUrl = "";
97
    private String refreshUrl = "";
98
    private String currentUrl = "";
98
    private String currentUrl = "";
123
    private void getIntentData() {
123
    private void getIntentData() {
124
        mUrl = getIntent().getStringExtra("url");
124
        mUrl = getIntent().getStringExtra("url");
125
        advertiser = getIntent().getStringExtra("advertiser");
125
        advertiser = getIntent().getStringExtra("advertiser");
126
        click_url = getIntent().getStringExtra("click_url");
127
        Log.e(TAG, "getIntentData: " + mUrl);
126
        Log.e(TAG, "getIntentData: " + mUrl);
128
        if (advertiser!=null && advertiser.equals("1")) {
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
    private void initView() {
133
    private void initView() {
147
        rl_point = (RelativeLayout) findViewById(R.id.rl_point);
134
        rl_point = (RelativeLayout) findViewById(R.id.rl_point);

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

10
import android.os.Environment;
10
import android.os.Environment;
11
import android.os.StrictMode;
11
import android.os.StrictMode;
12
import android.support.multidex.MultiDexApplication;
12
import android.support.multidex.MultiDexApplication;
13
import android.telephony.TelephonyManager;
14
import android.text.TextUtils;
13
import android.util.Log;
15
import android.util.Log;
14

16

15
import com.amap.api.maps.model.LatLng;
17
import com.amap.api.maps.model.LatLng;
207
        loginRemind();
209
        loginRemind();
208
        setFestival();
210
        setFestival();
209
        initSmallVideo();
211
        initSmallVideo();
212

210
    }
213
    }
211

214

212
    public static MainApplication getInstance() {
215
    public static MainApplication getInstance() {

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

17
    private String timer;
17
    private String timer;
18
    private int is_dui;
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
    public int getIs_dui() {
30
    public int getIs_dui() {
21
        return is_dui;
31
        return is_dui;
22
    }
32
    }

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

3
import android.content.Context;
3
import android.content.Context;
4
import android.util.Log;
4
import android.util.Log;
5

5

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

6
public class ProfileManager {
9
public class ProfileManager {
7

10

8
    private static final String KEY_USERNAME = "key_username";
11
    private static final String KEY_USERNAME = "key_username";
64
    private static final String KEY_CLICKED_USER_PUBLISH_TOPIC = "key_clicked_user_publish_topic";
67
    private static final String KEY_CLICKED_USER_PUBLISH_TOPIC = "key_clicked_user_publish_topic";
65
    private static final String KEY_CLICKED_USER_PUBLISH_ROLE = "key_clicked_user_publish_role";
68
    private static final String KEY_CLICKED_USER_PUBLISH_ROLE = "key_clicked_user_publish_role";
66
    private static final String KEY_MAKE_SURE_NETWORK_FOR_VIDEO = "key_make_sure_network_for_video";
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
    private static ProfileManager instance;
72
    private static ProfileManager instance;
73
    private String deviceId;
74
    private String tempDeviceId;
69

75

70
    public static ProfileManager getInstance() {
76
    public static ProfileManager getInstance() {
71
        if (instance == null) {
77
        if (instance == null) {
626
    public void setMsgChargingStatusNo(Context context, int id) {
632
    public void setMsgChargingStatusNo(Context context, int id) {
627
        PreferenceManager.getInstance(context).putInt(KEY_MESSAGE_STATUS_CHARGING_NO, id);
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

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

46

388
        aMap.setCustomMapStyle(customMapStyleOptions);
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
import com.electric.chargingpile.data.ChargingShareBean;
38
import com.electric.chargingpile.data.ChargingShareBean;
39
import com.electric.chargingpile.util.DES3;
39
import com.electric.chargingpile.util.DES3;
40
import com.electric.chargingpile.util.JsonUtils;
40
import com.electric.chargingpile.util.JsonUtils;
41
import com.electric.chargingpile.util.Util;
41
import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;
42
import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;
42
import com.nostra13.universalimageloader.core.ImageLoader;
43
import com.nostra13.universalimageloader.core.ImageLoader;
43
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
44
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
107
    private Context context;
108
    private Context context;
108
109
109
    private static String tag = "ResolvePicture";
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
    //Handler
121
    //Handler
112
    private Handler handler = new Handler() {
122
    private Handler handler = new Handler() {
256
                } else {
266
                } else {
257
                    url = mAdin.getUrl() + "?cdzshareid=" + mAdin.getId();
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
                intent.putExtra("url", url);
274
                intent.putExtra("url", url);
275
260
                Log.e(TAG, "imageBrower: url=" + url);
276
                Log.e(TAG, "imageBrower: url=" + url);
261
                context.startActivity(intent);
277
                context.startActivity(intent);
262
            }
278
            }
785
        });
801
        });
786
        platform.share(paramsToShare);
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
}