Browse Source

1,增加获取userId的方法

lyn 5 years ago
parent
commit
f32df1507a

+ 44 - 0
app/src/main/java/com/haochuan/hciptvbasic/webview/UtilToJS.java

@@ -2,6 +2,8 @@ package com.haochuan.hciptvbasic.webview;
 
 
 import android.app.Activity;
 import android.app.Activity;
 import android.content.Context;
 import android.content.Context;
+import android.database.Cursor;
+import android.net.Uri;
 import android.text.TextUtils;
 import android.text.TextUtils;
 import android.webkit.JavascriptInterface;
 import android.webkit.JavascriptInterface;
 import android.webkit.WebView;
 import android.webkit.WebView;
@@ -18,6 +20,7 @@ import com.haochuan.core.util.MathUtil;
 import com.haochuan.core.util.ToolsUtil;
 import com.haochuan.core.util.ToolsUtil;
 
 
 import org.json.JSONObject;
 import org.json.JSONObject;
+import org.w3c.dom.Text;
 
 
 
 
 import static com.haochuan.core.util.MessageCode.EXCEPTION_ERROR;
 import static com.haochuan.core.util.MessageCode.EXCEPTION_ERROR;
@@ -96,6 +99,7 @@ public class UtilToJS {
             localParamsJson.put("version_code",BuildConfig.VERSION_CODE);
             localParamsJson.put("version_code",BuildConfig.VERSION_CODE);
             localParamsJson.put("version_name",BuildConfig.VERSION_NAME);
             localParamsJson.put("version_name",BuildConfig.VERSION_NAME);
             localParamsJson.put("mac",MacUtil.getMac(context));
             localParamsJson.put("mac",MacUtil.getMac(context));
+            localParamsJson.put("user_id",getUserName());
             String paramJsonStr = localParamsJson.toString();
             String paramJsonStr = localParamsJson.toString();
             Logger.d("UtilToJS,getLocalParamsByJson(),paramJsonStr:" + paramJsonStr);
             Logger.d("UtilToJS,getLocalParamsByJson(),paramJsonStr:" + paramJsonStr);
             return paramJsonStr;
             return paramJsonStr;
@@ -180,5 +184,45 @@ public class UtilToJS {
         }
         }
     }
     }
 
 
+    /*-----------------------------本地盒子参数获取------------------------------------*/
 
 
+    /**
+     * 获取userName
+     * @return
+     */
+    private String getUserNameFromSTB(){
+        try{
+            Uri uri = Uri.parse("content://stbconfig/authentication");
+            Cursor mCursor = context.getContentResolver().query(uri,null,null,null,null);
+            if(mCursor != null){
+                String userName = "";
+                while (mCursor.moveToNext()){
+                    //获取username
+                    String name = mCursor.getString(mCursor.getColumnIndex("name"));
+                    if("username".equals(name)){
+                        userName = mCursor.getString(mCursor.getColumnIndex("value"));
+                        break;
+                    }
+                }
+                return userName;
+            }else{
+                return "";
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+            return "";
+        }
+    }
+
+    /**
+     * 返回用户名
+     * @return
+     */
+    private String getUserName(){
+        String userName = getUserNameFromSTB();
+        if(TextUtils.isEmpty(userName)){
+            return MacUtil.getMac(context);
+        }
+        return userName;
+    }
 }
 }

+ 1 - 1
core/src/main/java/com/haochuan/core/http/RequestServer.java

@@ -42,7 +42,7 @@ public class RequestServer {
 
 
 
 
     //    private static final String HOST = "http://150.138.11.180:6401/";
     //    private static final String HOST = "http://150.138.11.180:6401/";
-    private static final String HOST = "http://sxsj.reading.sdteleiptv.com:6401/";
+    private static final String HOST = "http://202.99.114.152:24025/";
 
 
     private static final String UPDATE_VERSION = HOST + "apk/up_version";
     private static final String UPDATE_VERSION = HOST + "apk/up_version";
 
 

+ 44 - 23
core/src/main/java/com/haochuan/core/util/MacUtil.java

@@ -15,6 +15,7 @@ import java.io.FileReader;
 import java.io.InputStreamReader;
 import java.io.InputStreamReader;
 import java.io.LineNumberReader;
 import java.io.LineNumberReader;
 import java.io.Reader;
 import java.io.Reader;
+import java.net.Inet4Address;
 import java.net.InetAddress;
 import java.net.InetAddress;
 import java.net.NetworkInterface;
 import java.net.NetworkInterface;
 import java.net.SocketException;
 import java.net.SocketException;
@@ -23,35 +24,55 @@ import java.util.Enumeration;
 public final class MacUtil {
 public final class MacUtil {
 
 
     public static String getMac(Context context) {
     public static String getMac(Context context) {
-        String strMac;
-
-        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
-            Log.d("=====", "6.0以下");
-            strMac = getLocalMacAddressFromWifiInfo(context);
-        } else if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N) {
-            Log.d("=====", "6.0以上7.0以下");
-            strMac = getMacAddress(context);
-        } else {
-            Log.d("=====", "7.0以上");
-            if (!TextUtils.isEmpty(getMacAddress())) {
-                Log.d("=====", "7.0以上1");
-                strMac = getMacAddress();
-            } else if (!TextUtils.isEmpty(getMachineHardwareAddress())) {
-                Log.d("=====", "7.0以上2");
-                strMac = getMachineHardwareAddress();
-            } else {
-                Log.d("=====", "7.0以上3");
-                strMac = getLocalMacAddressFromBusybox();
+        byte[] mac = null;
+        StringBuffer sb = new StringBuffer();
+        try
+        {
+            Enumeration<NetworkInterface> netInterfaces = NetworkInterface.getNetworkInterfaces();
+            while (netInterfaces.hasMoreElements())
+            {
+                NetworkInterface ni = netInterfaces.nextElement();
+                Enumeration<InetAddress> address = ni.getInetAddresses();
+                while (address.hasMoreElements())
+                {
+                    InetAddress ip = address.nextElement();
+                    if (ip.isAnyLocalAddress() || !(ip instanceof Inet4Address)
+                            || ip.isLoopbackAddress())
+                        continue;
+                    if (ip.isSiteLocalAddress())
+                        mac = ni.getHardwareAddress();
+                    else if (!ip.isLinkLocalAddress())
+                    {
+                        mac = ni.getHardwareAddress();
+                        break;
+                    }
+                }
             }
             }
         }
         }
-
-        if (TextUtils.isEmpty(strMac)) {
-            strMac = "02:00:00:00:00:00";
+        catch (SocketException e)
+        {
+            e.printStackTrace();
+        }
+        if (mac != null)
+        {
+            for (int i = 0; i < mac.length; i++)
+            {
+                sb.append(parseByte(mac[i]));
+            }
+            return sb.substring(0, sb.length() - 1).replace(":", "");
+        }
+        else
+        {
+            return "000000FFFFFF";
         }
         }
 
 
-        return strMac;
     }
     }
 
 
+    private static String parseByte(byte b)
+    {
+        String s = "00" + Integer.toHexString(b) + ":";
+        return s.substring(s.length() - 3);
+    }
 
 
     /**
     /**
      * 根据wifi信息获取本地mac
      * 根据wifi信息获取本地mac