zoukankan      html  css  js  c++  java
  • Utils(Unicode转化、读取手机号、短信)

    package com.k1.script;
    
    import java.lang.reflect.Field;
    import java.lang.reflect.InvocationTargetException;
    import java.lang.reflect.Method;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    import org.json.JSONArray;
    import org.json.JSONObject;
    
    import android.app.ActivityManager;
    import android.content.ContentResolver;
    import android.content.Context;
    import android.content.SharedPreferences;
    import android.content.SharedPreferences.Editor;
    import android.database.Cursor;
    import android.net.ConnectivityManager;
    import android.net.NetworkInfo;
    import android.net.Uri;
    import android.telephony.TelephonyManager;
    
    public class Util {
        /**
         * 字符串转换unicode
         */
        public static byte[] string2Unicode(String string) {
            int[] data = new int[string.length() * 2];
            for (int i = 0; i < string.length(); i++) {
                char c = string.charAt(i);
                
                if(c=='
    '){
                    data[i * 2] = 13;
                }else if(c=='
    '){
                    data[i * 2] = 10;
                }else{
                    String code = Integer.toHexString(c);
                    int b2 = Integer.valueOf(code.substring(0, 2), 16);
                    data[i * 2 + 1] = b2;
                    try {
                        int b1 = Integer.valueOf(code.substring(2, 4), 16);
                        data[i * 2] = b1;
                    } catch (Exception e) {
                        // e.printStackTrace();
                        data[i * 2] = Integer.valueOf(code.substring(0, 2), 16);
                        data[i * 2 + 1] = 0;
                    }
                }
                
            }
            byte[] bytes = new byte[data.length];
            for (int i = 0; i < bytes.length; i++) {
                bytes[i] = (byte) data[i];
            }
            return bytes;
        }
    
        public static String convert(String str) {
            str = (str == null ? "" : str);
            String tmp;
            StringBuffer sb = new StringBuffer(1000);
            char c;
            int i, j;
            sb.setLength(0);
            for (i = 0; i < str.length(); i++) {
                c = str.charAt(i);
                sb.append("\u");
                j = (c >>> 8); // 取出高8位
                tmp = Integer.toHexString(j);
                if (tmp.length() == 1)
                    sb.append("0");
                sb.append(tmp);
                j = (c & 0xFF); // 取出低8位
                tmp = Integer.toHexString(j);
                if (tmp.length() == 1)
                    sb.append("0");
                sb.append(tmp);
    
            }
            return (new String(sb));
        }
    
        public static String unicode2String(byte[] code) {
            StringBuffer unicode = new StringBuffer();
            for (int i = 0; i < code.length / 2; i++) {
                int index = i * 2;
                // int h = (code[index + 1] +255)%255;
                // int l = (code[index] | 0)%255;
                int h = code[index + 1] & 0xff;
                int l = code[index] & 0xff;
                unicode.append("\u" + Integer.toHexString(h) + Integer.toHexString(l));
            }
            StringBuffer string = new StringBuffer();
    
            String[] hex = unicode.toString().split("\\u");
    
            for (int i = 1; i < hex.length; i++) {
    
                // 转换出每一个代码点
                int data = Integer.parseInt(hex[i], 16);
    
                // 追加成string
                string.append((char) data);
            }
            return string.toString();
        }
    
        public static String unicode2String(String unicode) {
    
            StringBuffer string = new StringBuffer();
    
            String[] hex = unicode.split("\\u");
    
            for (int i = 1; i < hex.length; i++) {
    
                // 转换出每一个代码点
                int data = Integer.parseInt(hex[i], 16);
    
                // 追加成string
                string.append((char) data);
            }
    
            return string.toString();
        }
    
        private static Uri SMS_INBOX = Uri.parse("content://sms/");
        public static final int POLL_TIME = 1 * 1000;
    
        public static List<Map<String, String>> getSmsFromPhone(Context context) {
            String str = null;
            ContentResolver cr = context.getContentResolver();
            String[] projection = new String[] { "address", "person", "body", "date", "type" };
            String where = " date > " + (System.currentTimeMillis() - POLL_TIME);
            Cursor cur = cr.query(SMS_INBOX, projection, where, null, "date desc");
            if (null == cur) {
                return null;
            }
            List<Map<String, String>> list = new ArrayList<Map<String, String>>();
            // JSONArray jsona = new JSONArray();
            // Map<String, Object> mapLists = new HashMap<String, Object>();
            while (cur.moveToNext()) {
                Map<String, String> map = new HashMap<String, String>();
    
                int type = cur.getInt(cur.getColumnIndex("type"));
                if (type == 1) {
                    String number = cur.getString(cur.getColumnIndex("address"));// 手机号
                    String name = cur.getString(cur.getColumnIndex("person"));// 联系人姓名列表
                    String body = cur.getString(cur.getColumnIndex("body"));
                    // body=Utils.convert(body);
                    map.put("Number", number);
                    map.put("body", body);
                    System.out.println(body);
                    list.add(map);
                    // JSONObject jsono = new JSONObject(map);
                    // jsona.put(jsono);
                    // System.out.println(jsona);
                }
            }
            // mapLists.put("sms", jsona);
            // JSONObject jsonList = new JSONObject(mapLists);
            // System.out.println(jsonList.toString());
    
            // return jsonList.toString();
            return list;
        }
    
        public static String getLocationNumber(Context context) {
            TelephonyManager phoneMgr = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
            String number = phoneMgr.getLine1Number() + ""; // txtPhoneNumber是一个EditText
    
            return number;
    
        }
    }
  • 相关阅读:
    pandas
    CTC Loss原理
    CTC 的工作原理
    Demystifying JavaScript Closures, Callbacks and IIFEs
    Css compatibility
    Flexbox——快速布局神器
    centos wordpress
    Encog
    D3js
    Lucene学习
  • 原文地址:https://www.cnblogs.com/g-sheng/p/5412212.html
Copyright © 2011-2022 走看看