Android几个实用的小功能实现

//获取当前活动的activity所在的包名

public String getAppPackageName(Context context){

 ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); 

 List taskInfo = activityManager.getRunningTasks(1);

    ComponentName componentInfo = taskInfo.get(0).topActivity;

    Log.d(TAG, "package:" + componentInfo.getPackageName());

    return componentInfo.getPackageName();

    }   

//获取当前活动activity名称

  public String getRunningActivityName(Context context) {

    ActivityManager activityManager=(ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);

    //

    String runningActivity=activityManager.getRunningTasks(1).get(0).topActivity.getClassName();

    String contextActivity = runningActivity.substring(runningActivity.lastIndexOf(".")+1);

    Log.d(TAG, "contextActivity:" + contextActivity);

    return contextActivity;

    } 


//SharedPreferences存取简单数据的例子

public void setStartBTprtValue(String bStart) {

    SharedPreferences mySharedPreferences= getSharedPreferences("StartBTprt",

    Activity.MODE_PRIVATE);

    SharedPreferences.Editor editor = mySharedPreferences.edit();

    editor.putString("bStart", bStart);

    editor.commit();

    }


    public String getStartBTprtValue() {

    SharedPreferences sharedPreferences= getSharedPreferences("StartBTprt",

    Activity.MODE_PRIVATE);

    String bStart =sharedPreferences.getString("bStart", "");

    return bStart;

    }

//数据转换

public int byte2unsignedint(byte a)

    {

        int b = a & 0xff;

        return b;

    }

    public String bytetoString(byte[] bytearray) {

        String result = "";

        char temp;

        int length = bytearray.length;

        for (int i = 0; i < length; i++) {

            temp = (char) bytearray[i];

            result += temp;

        }

        return result;

    }

//java 合并两个byte数组

    public byte[] byteMerger(byte[] byte_1, byte[] byte_2){ 

        byte[] byte_3 = new byte[byte_1.length+byte_2.length]; 

        System.arraycopy(byte_1, 0, byte_3, 0, byte_1.length); 

        System.arraycopy(byte_2, 0, byte_3, byte_1.length, byte_2.length); 

        return byte_3; 

    }

//删除文件

public void DeleteFile(File file) {

        if (file.exists() == false) {

         Log.e("www","DeleteFile not exists!!!");

            return;

        } else {

            if (file.isFile()) {

                file.delete();

                Log.e("www","DeleteFile 1 ok!!!");

                return;

            }

            if (file.isDirectory()) {

                File[] childFile = file.listFiles();

                if (childFile == null || childFile.length == 0) {

                    file.delete();

                    return;

                }

                for (File f : childFile) {

                    DeleteFile(f);

                }

                file.delete();

                Log.e("www","DeleteFile ok!!!");

            }

        }

    }

    /** 

    * 复制单个文件 

    * @param oldPath String 原文件路径 如:c:/fqf.txt 

    * @param newPath String 复制后路径 如:f:/fqf.txt 

    * @return 

    */ 

  public void copyFile(String oldPath, String newPath) { 

      try { 

          int bytesum = 0; 

          int byteread = 0; 

          File oldfile = new File(oldPath); 

          if (oldfile.exists()) { //文件不存在时 

              InputStream inStream = new FileInputStream(oldPath);

              FileOutputStream fs = new FileOutputStream(newPath); 

              byte[] buffer = new byte[1444]; 


              while ( (byteread = inStream.read(buffer)) != -1) { 

                  bytesum += byteread; //字节数 文件大小 

                  System.out.println(bytesum); 

                  fs.write(buffer, 0, byteread); 

              } 

              inStream.close();

              fs.close();

          } 

      } 

      catch (Exception e) { 

          System.out.println("复制单个文件操作出错"); 

          e.printStackTrace(); 

       } 

   } 

//write data to file in SD

    public void writeFileSdcardFile(String fileName,String write_str) throws IOException{ 

    try{ 

           FileOutputStream fout = new FileOutputStream(fileName); 

          byte [] bytes = write_str.getBytes(); 

           fout.write(bytes); 

          fout.close(); 

        } 

          catch(Exception e){ 

            e.printStackTrace(); 

          } 

  } 

    //read data from SD

    public String readFileSdcardFile(String fileName) throws IOException{ 

      String res=""; 

      try{ 

            FileInputStream fin = new FileInputStream(fileName); 

             int length = fin.available(); 

             byte [] buffer = new byte[length]; 

            fin.read(buffer);     

             res = EncodingUtils.getString(buffer, "UTF-8"); 

             fin.close();     

            } 

            catch(Exception e){ 

            e.printStackTrace(); 

            } 

            return res; 

    }

    //2 read data from SD//161020

    public byte [] readByteSdcardFile(String fileName) throws IOException{ 

      //String res=""; 

      try{ 

            FileInputStream fin = new FileInputStream(fileName); 

             int length = fin.available(); 

             byte [] buffer = new byte[length]; 

            fin.read(buffer);     

             //res = EncodingUtils.getString(buffer, "UTF-8"); 

             fin.close();

            return buffer;

            } 

            catch(Exception e){ 

            e.printStackTrace(); 

            }

    return null; 

    } 

//run linux cmd

    String do_exec(String cmd) { 

        String s = "/n"; 

        try { 

            Process p = Runtime.getRuntime().exec(cmd); 

            BufferedReader in = new BufferedReader( 

                                new InputStreamReader(p.getInputStream())); 

            String line = null; 

            while ((line = in.readLine()) != null) { 

                s += line + "/n";               

            } 

        } catch (IOException e) { 

            // TODO Auto-generated catch block 

            e.printStackTrace(); 

        } 

        //text.setText(s); 

        return cmd;     

    }   

    public static String str2HexStr(String str) {   

        char[] chars = "0123456789ABCDEF".toCharArray();   

        StringBuilder sb = new StringBuilder(""); 

        byte[] bs = str.getBytes();   

        int bit;   

        for (int i = 0; i < bs.length; i++) {   

            bit = (bs[i] & 0x0f0) >> 4;   

            sb.append(chars[bit]);   

            bit = bs[i] & 0x0f;   

            sb.append(chars[bit]);   

        }   

        return sb.toString();   

    }

    //byteTo16HexStr//161020

    public static String bytesToHexString(byte[] bArray) {

      StringBuffer sb = new StringBuffer(bArray.length);

      String sTemp;

      for (int i = 0; i < bArray.length; i++) {

      sTemp = Integer.toHexString(0xFF & bArray[i]);

      if (sTemp.length() < 2)

        sb.append(0);

      sb.append(sTemp.toUpperCase());

      }

      return sb.toString();

    }

//读取系统属性

String getproduct = getSystemProperty("ro.epay.serial","1");

/**

* 读取属性

* */

public String getSystemProperty(String key, String def) {

String result = null;

try {

Class spCls = Class.forName("android.os.SystemProperties");

Class[] typeArgs = new Class[2];

typeArgs[0] = String.class;

typeArgs[1] = String.class;

Constructor spcs = spCls.getConstructor(null);

Object[] valueArgs = new Object[2];

valueArgs[0] = key;

valueArgs[1] = def;

Object sp = spcs.newInstance(null);

Method method = spCls.getMethod("get", typeArgs);

result = (String) method.invoke(sp, valueArgs);

} catch (ClassNotFoundException e) {

e.printStackTrace();

} catch (NoSuchMethodException e) {

e.printStackTrace();

} catch (IllegalAccessException e) {

e.printStackTrace();

} catch (InvocationTargetException e) {

e.printStackTrace();

} catch (InstantiationException e) {

e.printStackTrace();

}

return result;

}

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,406评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,732评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,711评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,380评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,432评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,301评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,145评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,008评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,443评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,649评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,795评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,501评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,119评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,731评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,865评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,899评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,724评论 2 354

推荐阅读更多精彩内容