import android.os.Message;
15
16
import androidx.annotation.NonNull;
14 17
import androidx.viewpager.widget.ViewPager;
15 18
import android.util.Log;
16 19
import android.view.Gravity;
@ -32,6 +35,7 @@ import android.widget.RelativeLayout;
32 35
import android.widget.TextView;
33 36
import android.widget.Toast;
34 37
38
import com.blankj.utilcode.util.LogUtils;
35 39
import com.electric.chargingpile.R;
36 40
import com.electric.chargingpile.application.MainApplication;
37 41
import com.electric.chargingpile.data.Pic;
@ -48,6 +52,7 @@ import com.electric.chargingpile.view.SlideShowView;
48 52
import com.squareup.okhttp.Request;
49 53
import com.squareup.okhttp.Response;
50 54
55
import org.jetbrains.annotations.NotNull;
51 56
import org.json.JSONArray;
52 57
import org.json.JSONException;
53 58
import org.json.JSONObject;
@ -58,9 +63,12 @@ import java.util.ArrayList;
58 63
import java.util.List;
59 64
60 65
import cn.sharesdk.onekeyshare.OnekeyShare;
66
import pub.devrel.easypermissions.AfterPermissionGranted;
67
import pub.devrel.easypermissions.AppSettingsDialog;
68
import pub.devrel.easypermissions.EasyPermissions;
61 69
62 70
63
public class ZhanDetailsNew extends Activity implements OnClickListener {
71
public class ZhanDetailsNew extends Activity implements OnClickListener, EasyPermissions.PermissionCallbacks {
64 72
    private ImageView iv_down, phone;
65 73
    private LinearLayout ll_menu;
66 74
    private ImageView ivBack, ivType, ivZhan, iv_call;
@ -104,7 +112,8 @@ public class ZhanDetailsNew extends Activity implements OnClickListener {
104 112
    private EditText claimer;
105 113
    public final static int RESULT_0 = 0;
106 114
    public final static int RESULT_1 = 1;
107
115
    private static final int RC_TELL_PERM = 124;
116
    private String telNum;
108 117
109 118
//    private ViewPager viewPager;
110 119
//    private ArrayList<View> pageview;
@ -791,12 +800,8 @@ public class ZhanDetailsNew extends Activity implements OnClickListener {
791 800
                        .setPositiveButton("呼叫", new View.OnClickListener() {
792 801
                            @Override
793 802
                            public void onClick(View v) {
794
                                String telNum = zhan.getTelephone().toString();
795
                                Intent intent = new Intent();
796
                                intent.setAction("android.intent.action.CALL");
797
                                intent.addCategory("android.intent.category.DEFAULT");
798
                                intent.setData(Uri.parse("tel:" + telNum));
799
                                ZhanDetailsNew.this.startActivity(intent);
803
                                telNum = zhan.getTelephone().toString();
804
                                tellTask();
800 805
                            }
801 806
                        }).setNegativeButton("取消", new View.OnClickListener() {
802 807
                    @Override
@ -1091,4 +1096,44 @@ public class ZhanDetailsNew extends Activity implements OnClickListener {
1091 1096
            }
1092 1097
        }).start();
1093 1098
    }
1099
    @AfterPermissionGranted(RC_TELL_PERM)
1100
    public void tellTask() {
1101
        if (hasTellPermission()) {
1102
            // Have permission, do the thing!
1103
//            Toast.makeText(this, "TODO: Camera things", Toast.LENGTH_LONG).show();
1104
            Intent intent = new Intent();
1105
            intent.setAction("android.intent.action.CALL");
1106
            intent.addCategory("android.intent.category.DEFAULT");
1107
            intent.setData(Uri.parse("tel:" + telNum));
1108
            ZhanDetailsNew.this.startActivity(intent);
1109
1110
        } else {
1111
            LogUtils.e("@@@@@@@");
1112
            // Ask for one permission
1113
            EasyPermissions.requestPermissions(
1114
                    this,
1115
                    "该功能需要开启拨号权限,是否前往开启?",
1116
                    RC_TELL_PERM,
1117
                    Manifest.permission.CALL_PHONE);
1118
        }
1119
    }
1120
    private boolean hasTellPermission() {
1121
        return EasyPermissions.hasPermissions(this, Manifest.permission.CALL_PHONE);
1122
    }
1123
1124
1125
    @Override
1126
    public void onPermissionsGranted(int requestCode, @NonNull @NotNull List<String> perms) {
1127
1128
    }
1129
1130
    @Override
1131
    public void onPermissionsDenied(int requestCode, List<String> perms) {
1132
        if (EasyPermissions.somePermissionPermanentlyDenied(this, perms)) {
1133
            // TODO add by hyg20200525
1134
            new AppSettingsDialog.Builder(ZhanDetailsNew.this).build().show();
1135
//            new AppSettingsDialog.Builder(InputCodeActivity.this,
1136
//                    "该功能需要开启拨号权限,是否前往开启??").build().show();
1137
        }
1138
    }
1094 1139
}

+ 55 - 7
app/src/main/java/com/electric/chargingpile/fragment/DetailsFragment.java

@ -1,6 +1,7 @@
1 1
package com.electric.chargingpile.fragment;
2 2
3 3
4
import android.Manifest;
4 5
import android.annotation.TargetApi;
5 6
import android.content.Context;
6 7
import android.content.Intent;
@ -26,10 +27,12 @@ import android.widget.Space;
26 27
import android.widget.TextView;
27 28
import android.widget.Toast;
28 29
30
import androidx.annotation.NonNull;
29 31
import androidx.fragment.app.Fragment;
30 32
31 33
import com.amap.api.maps.AMapUtils;
32 34
import com.amap.api.maps.model.LatLng;
35
import com.blankj.utilcode.util.LogUtils;
33 36
import com.electric.chargingpile.R;
34 37
import com.electric.chargingpile.activity.AlterOneActivity;
35 38
import com.electric.chargingpile.activity.ChargingQianDaoActivity;
@ -38,6 +41,7 @@ import com.electric.chargingpile.activity.LoginActivity;
38 41
import com.electric.chargingpile.activity.MainMapActivity;
39 42
import com.electric.chargingpile.activity.NewZhanDetailsActivity;
40 43
import com.electric.chargingpile.activity.PriceDetailsActivity;
44
import com.electric.chargingpile.activity.ZhanDetailsNew;
41 45
import com.electric.chargingpile.application.MainApplication;
42 46
import com.electric.chargingpile.data.ChartData;
43 47
import com.electric.chargingpile.data.MyOtto;
@ -78,6 +82,7 @@ import com.zhy.view.flowlayout.FlowLayout;
78 82
import com.zhy.view.flowlayout.TagAdapter;
79 83
import com.zhy.view.flowlayout.TagFlowLayout;
80 84
85
import org.jetbrains.annotations.NotNull;
81 86
import org.json.JSONArray;
82 87
import org.json.JSONException;
83 88
import org.json.JSONObject;
@ -99,9 +104,13 @@ import java.util.regex.PatternSyntaxException;
99 104
100 105
import me.codeboy.android.aligntextview.AlignTextView;
101 106
import okhttp3.Call;
107
import pub.devrel.easypermissions.AfterPermissionGranted;
108
import pub.devrel.easypermissions.AppSettingsDialog;
109
import pub.devrel.easypermissions.EasyPermissions;
102 110
103
public class DetailsFragment extends Fragment implements View.OnClickListener, OnChartValueSelectedListener {
111
public class DetailsFragment extends Fragment implements View.OnClickListener, OnChartValueSelectedListener, EasyPermissions.PermissionCallbacks {
104 112
    private static final String TAG = "DetailsFragment";
113
    private static final int RC_TELL_PERM = 124;
105 114
    private Zhan zhan = null;
106 115
    private CombinedChart mChart;
107 116
    public static ArrayList<JSONObject> datas;
@ -792,6 +801,7 @@ public class DetailsFragment extends Fragment implements View.OnClickListener, O
792 801
    private String zongjia;
793 802
    private ImageView scan_charge_btn;
794 803
    private Space scan_charge_space;
804
    private String telNum;
795 805
796 806
    @Override
797 807
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
@ -952,14 +962,11 @@ public class DetailsFragment extends Fragment implements View.OnClickListener, O
952 962
                new com.electric.chargingpile.view.AlertDialog(getActivity()).builder()
953 963
                        .setMsg(zhan_name + "  " + telephone)
954 964
                        .setPositiveButton("呼叫", new View.OnClickListener() {
965
955 966
                            @Override
956 967
                            public void onClick(View v) {
957
                                String telNum = telephone.toString();
958
                                Intent intent = new Intent();
959
                                intent.setAction("android.intent.action.CALL");
960
                                intent.addCategory("android.intent.category.DEFAULT");
961
                                intent.setData(Uri.parse("tel:" + telNum));
962
                                getActivity().startActivity(intent);
968
                                telNum = telephone.toString();
969
                                tellTask();
963 970
                            }
964 971
                        }).setNegativeButton("取消", new View.OnClickListener() {
965 972
                    @Override
@ -1528,6 +1535,47 @@ public class DetailsFragment extends Fragment implements View.OnClickListener, O
1528 1535
        super.onDestroyView();
1529 1536
    }
1530 1537
1538
    @AfterPermissionGranted(RC_TELL_PERM)
1539
    public void tellTask() {
1540
        if (hasTellPermission()) {
1541
            // Have permission, do the thing!
1542
//            Toast.makeText(this, "TODO: Camera things", Toast.LENGTH_LONG).show();
1543
            Intent intent = new Intent();
1544
            intent.setAction("android.intent.action.CALL");
1545
            intent.addCategory("android.intent.category.DEFAULT");
1546
            intent.setData(Uri.parse("tel:" + telNum));
1547
            DetailsFragment.this.startActivity(intent);
1548
1549
        } else {
1550
            LogUtils.e("@@@@@@@");
1551
            // Ask for one permission
1552
            EasyPermissions.requestPermissions(
1553
                    this,
1554
                    "该功能需要开启拨号权限,是否前往开启?",
1555
                    RC_TELL_PERM,
1556
                    Manifest.permission.CALL_PHONE);
1557
        }
1558
    }
1559
    private boolean hasTellPermission() {
1560
        return EasyPermissions.hasPermissions(getActivity(), Manifest.permission.CALL_PHONE);
1561
    }
1562
1563
1564
    @Override
1565
    public void onPermissionsGranted(int requestCode, @NonNull @NotNull List<String> perms) {
1566
1567
    }
1568
1569
    @Override
1570
    public void onPermissionsDenied(int requestCode, List<String> perms) {
1571
        if (EasyPermissions.somePermissionPermanentlyDenied(this, perms)) {
1572
            // TODO add by hyg20200525
1573
            new AppSettingsDialog.Builder(DetailsFragment.this).build().show();
1574
//            new AppSettingsDialog.Builder(InputCodeActivity.this,
1575
//                    "该功能需要开启拨号权限,是否前往开启??").build().show();
1576
        }
1577
    }
1578
1531 1579
    public static String getMD5(String content) {
1532 1580
        try {
1533 1581

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

@ -402,7 +402,7 @@ public class Util {
402 402
    }
403 403

404 404
    public static String generateDmpUrl(String url) {
405
        url = url.replace("__OS__", "android");
405
      /*  url = url.replace("__OS__", "android");
406 406
        String mac = getMac(MainApplication.context);
407 407
        if (mac != null) {
408 408
            mac = mac.replace(":", "");
@ -419,7 +419,7 @@ public class Util {
419 419

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

422
*/
423 423
        return url;
424 424
    }
425 425

@ -436,69 +436,69 @@ public class Util {
436 436
        return udid;
437 437
    }
438 438

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

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

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

439
//    /**
440
//     * 获取wifi的mac地址,适配到android Q
441
//     *
442
//     * @param paramContext
443
//     * @return
444
//     */
445
//    private static String getMac(Context paramContext) {
446
//        try {
447
//            if (Build.VERSION.SDK_INT >= 23) {
448
//                String str = getMacMoreThanM(paramContext);
449
//                if (!TextUtils.isEmpty(str))
450
//                    return str;
451
//            }
452
//            // 6.0以下手机直接获取wifi的mac地址即可
453
//            WifiManager wifiManager = (WifiManager) paramContext.getSystemService("wifi");
454
//            WifiInfo wifiInfo = wifiManager.getConnectionInfo();
455
//            if (wifiInfo != null)
456
//                return wifiInfo.getMacAddress();
457
//        } catch (Throwable throwable) {
458
//            throwable.printStackTrace();
459
//        }
460
//        return null;
461
//    }
462
//
463
//    /**
464
//     * android 6.0+获取wifi的mac地址
465
//     *
466
//     * @param paramContext
467
//     * @return
468
//     */
469
//    private static String getMacMoreThanM(Context paramContext) {
470
//        try {
471
//            //获取本机器所有的网络接口
472
//            Enumeration enumeration = NetworkInterface.getNetworkInterfaces();
473
//            while (enumeration.hasMoreElements()) {
474
//                NetworkInterface networkInterface = (NetworkInterface) enumeration.nextElement();
475
//                //获取硬件地址,一般是MAC
476
//                byte[] arrayOfByte = networkInterface.getHardwareAddress();
477
//                if (arrayOfByte == null || arrayOfByte.length == 0) {
478
//                    continue;
479
//                }
480
//
481
//                StringBuilder stringBuilder = new StringBuilder();
482
//                for (byte b : arrayOfByte) {
483
//                    //格式化为:两位十六进制加冒号的格式,若是不足两位,补0
484
//                    stringBuilder.append(String.format("%02X:", new Object[]{Byte.valueOf(b)}));
485
//                }
486
//                if (stringBuilder.length() > 0) {
487
//                    //删除后面多余的冒号
488
//                    stringBuilder.deleteCharAt(stringBuilder.length() - 1);
489
//                }
490
//                String str = stringBuilder.toString();
491
//                // wlan0:无线网卡 eth0:以太网卡
492
//                if (networkInterface.getName().equals("wlan0")) {
493
//                    return str;
494
//                }
495
//            }
496
//        } catch (SocketException socketException) {
497
//            return null;
498
//        }
499
//        return null;
500
//    }
501
//
502 502

503 503
    public static PictureParameterStyle getWhiteStyle(Context context) {
504 504
        // 相册主题

cdzApp - Gogs: Go Git Service

充电桩app代码

hy 0e5aebc0c1 将所有gradle升级至31 4 lat temu
..
gradle-wrapper.jar e1cf244fe0 remove Useless dependence 7 lat temu
gradle-wrapper.properties 0e5aebc0c1 将所有gradle升级至31 4 lat temu