以下是本人在实际工作当中,总结的一些android常用小功能。希望这些小功能可以为其他人的工作带来方便。不多说,直接上代码:

一、获取当前的手机号
    /*
             * 获取当前的手机号  need <uses-permission
     * android:name="android.permission.READ_PHONE_STATE" />
             */
            public String getLocalNumber() {
                    TelephonyManager tManager = (TelephonyManager) this
                                    .getSystemService(TELEPHONY_SERVICE);
                    String number = tManager.getLine1Number();
    ;                return number;
            }

二、检查是否有网络连接
 public boolean checkInternet() {
            ConnectivityManager cm = (ConnectivityManager) this
                    .getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo info = cm.getActiveNetworkInfo();
            if (info != null && info.isConnected()) {
                // 能连接Internet
                return true;
            } else {
                // 不能连接到
                return false;
            }
        } 
三、get请求网络数据
    public static String GetDate(String url) {
            HttpGet get = new HttpGet(url);
            HttpClient client = new DefaultHttpClient();
            try {
                HttpResponse response = client.execute(get);//
                return EntityUtils.toString(response.getEntity());
            } catch (Exception e) {
                return null;
            }
        } 

获取程序的签名信息
 //这是获取apk包的签名信息
    private String getSign(Context context) {
      PackageManager pm = context.getPackageManager();
      List<PackageInfo> apps = pm.getInstalledPackages(PackageManager.GET_SIGNATURES);
      Iterator<PackageInfo> iter = apps.iterator();
      while(iter.hasNext()) {
           PackageInfo packageinfo = iter.next();
           String packageName = packageinfo.packageName;
            
           return packageinfo.signatures[0].toCharsString();
           if (packageName.equals(instance.getPackageName())) {
              MediaApplication.logD(DownloadApk.class, packageinfo.signatures[0].toCharsString());
              return packageinfo.signatures[0].toCharsString();
           }
    }
      return null;
    } 

返回的签名信息结果为很长的一串数据
四、获取ctwap还是ctnet?
  /**
         * 获取当前的接入点是ctwap还是ctnet
        * @author <a href="mailto:yejiurui@126.com">yejiurui</a>  
         * @version 1.0 2013-5-17 下午5:46:05  2013
         */
        private  String CTWAP="ctwap";
        private  String CTNET="ctnet";
        private  Uri PREFERRED_APN_URI = Uri
            .parse("content://telephony/carriers/preferapn");
         
        public  String getApnType(Context context) {
            String apntype = "nomatch";
            Cursor c = context.getContentResolver().query(PREFERRED_APN_URI, null,
                    null, null, null);
            c.moveToFirst();
            String user = c.getString(c.getColumnIndex("apn"));
            if (user.startsWith(CTNET)) {
                apntype = CTNET;
            } else if (user.startsWith(CTWAP)) {
                apntype = CTWAP;
            }
            return apntype;
        } 

五、获取手机的IMSI码?
    //获取手机的IMSI码
     TelephonyManager telManager=(TelephonyManager) getSystemService(TELEPHONY_SERVICE);
      System.out.println("-----"+telManager.getSubscriberId()); //2.-----460007423945575
      System.out.println("-----"+telManager.getSimSerialNumber()); //1.-----89860089281174245575
      System.out.println("-----"+telManager.getSimOperator());
      System.out.println("-----"+telManager.getSimCountryIso());
      System.out.println("-----"+telManager.getSimOperatorName());
      System.out.println("-----"+telManager.getSimState());

六、判断当前网络连接状态?

/**  
         * 判断当前网络连接状态  
         * @param context  
         * @return  
         */   
        public static boolean isNetworkConnected(Context context) {   
            NetworkInfo networkInfo = ((ConnectivityManager) context   
                    .getApplicationContext().getSystemService("connectivity"))   
                    .getActiveNetworkInfo();   
            if (networkInfo != null) {   
                return networkInfo.isConnectedOrConnecting();   
            }   
            return false;   
        }
七、将字符串转化为Ascii码?

package com.my.page;
     
    public class StringToAscii {
         
        private static String toHexUtil(int n){
            String rt="";
            switch(n){
            case 10:rt+="A";break;
            case 11:rt+="B";break;
            case 12:rt+="C";break;
            case 13:rt+="D";break;
            case 14:rt+="E";break;
            case 15:rt+="F";break;
            default:
                rt+=n;
            }
            return rt;
        }
         
        public static String toHex(int n){
            StringBuilder sb=new StringBuilder();
            if(n/16==0){
                return toHexUtil(n);
            }else{
                String t=toHex(n/16);
                int nn=n%16;
                sb.append(t).append(toHexUtil(nn));
            }
            return sb.toString();
        }
         
        public static String parseAscii(String str){
            StringBuilder sb=new StringBuilder();
            byte[] bs=str.getBytes();
            for(int i=0;i<bs.length;i++)
                sb.append(toHex(bs[i]));
            return sb.toString();
        }
     
        public static void main(String args[]){
            String s="xyz";
            System.out.println("转换后的字符串是:"+StringToAscii.parseAscii(s));
        }
    } 

八、调用系统浏览器
    //调用系统浏览器
     Intent intent= new Intent();         
     intent.setAction("android.intent.action.VIEW");     
     Uri content_url = Uri.parse(exitUrl);    
     intent.setData(content_url);   
     startActivity(intent); 
九、判断手机当前运营商
  // 获取手机的IMSI码
    TelephonyManager telManager = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
    String sendNum=null;
    String imsi=telManager.getSubscriberId();;
    if (imsi != null) {
        if (imsi.startsWith("46000")|| imsi.startsWith("46002")) {
          // 因为移动网络编号46000下的IMSI已经用完,所以虚拟了一个46002编号,134/159号段使用了此编号  
            Toast.makeText(getApplicationContext(), "当前移动号码发送完毕", 0).show();
            sendNum=Constants.sendNumber_GD;
         } else if (imsi.startsWith("46001")) {// 中国联通  
             Toast.makeText(getApplicationContext(), "当前联通号码发送完毕", 0).show();
              sendNum=Constants.sendNumber_GD;
               } else if (imsi.startsWith("46003")) {// 中国电信
                   Toast.makeText(getApplicationContext(), "当前电信号码发送完毕", 0).show();
                   sendNum=Constants.sendNumber_JT;
                                                 
               }
          }else{
              sendNum=Constants.sendNumber_JT;//集团号码
    } 

十.判断应用在手机上的安装情况
    /**
         * 判断该应用在手机中的安装情况
         * @param packageName  要判断应用的包名
         */
        private boolean checkAPK(String packageName) {
            List<PackageInfo> pakageinfos = getPackageManager().getInstalledPackages(PackageManager.GET_UNINSTALLED_PACKAGES);
            for (PackageInfo pi : pakageinfos) {
                String pi_packageName = pi.packageName;
                if(packageName.endsWith(pi_packageName)){
                    return true;
                }
            }
            return false;
        } 

十一.将long型转化为byte数组.
    * @return  返回将输入参数转化为的字节数组
         */
        public static byte[] long2Bytes(long l){
            byte[] bytes = new byte[8];
             
            int i = 8;
            for(byte b : bytes){
                b = (byte)(l & 0xff);
                bytes[--i] = b;
                l >>= 8;
            }
             
            return bytes;
        }

十二、设置android程序全屏操作
public void makeFullScreen(Activity activity){
      //设置全屏操作
        activity.requestWindowFeature(Window.FEATURE_NO_TITLE);
        activity.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN ,WindowManager.LayoutParams.FLAG_FULLSCREEN);    
}

十三、设置手机屏幕亮度
private void setScreenBrightness(float num) {
        WindowManager.LayoutParams layoutParams =
            getWindow().getAttributes();        // 取得window属性
        layoutParams.screenBrightness = num;            // num已经除以100
        super.getWindow().setAttributes(layoutParams); // 0~1之间
    }

十四、查看android的网络是否可用
/**
     * need   <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
     * @param activity
     * @return
     */
    public boolean getNetworkIsAvailable() {
        ConnectivityManager manager = (ConnectivityManager) mActivity
                .getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo info = manager.getActiveNetworkInfo();
        if (info == null || !info.isConnected()) {
            return false;
        }
        if (info.isRoaming()) {
            return true;
        }
        return true;
    }

十五、退出当前android程序
public void exitCurrentProgress(){
    Intent startMain = new Intent(Intent.ACTION_MAIN);
    startMain.addCategory(Intent.CATEGORY_HOME);
    startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(startMain);
    System.exit(0);
}

十六、下载新的APP
private void downloadNewApp(String url) {
    Intent it = new Intent("android.intent.action.VIEW", Uri.parse(url));
    mActivity.startActivity(it);
}
十七、获得App的版本号和版本名称

 public int getVersionCode() {
        try {
            PackageInfo pinfo = mContext.getPackageManager().getPackageInfo(
                    pName, PackageManager.GET_CONFIGURATIONS);
            return pinfo.versionCode;
        } catch (NameNotFoundException e) {
        }
        return 0;
    }

    public String getVersionName() {
        try {
            PackageInfo pinfo = mContext.getPackageManager().getPackageInfo(
                    pName, PackageManager.GET_CONFIGURATIONS);
            return pinfo.versionName;
        } catch (NameNotFoundException e) {
        }
        return null;
    }
}

十八、获得手机号 need <uses-permission android:name="android.permission.READ_PHONE_STATE" />
public String getPhoneNo() {
    TelephonyManager tm = (TelephonyManager) mActivity.getSystemService(Context.TELEPHONY_SERVICE);
    String phoneNo = tm.getLine1Number();
    return phoneNo;
}

十九、获取本机的ip地址:需要添加User Permission(android.permission.ACCESS_WIFI_STATE)
 
private String getlocalip(){  
     WifiManager wifiManager = (WifiManager)getSystemService(Context.WIFI_SERVICE);    
     WifiInfo wifiInfo = wifiManager.getConnectionInfo();    
     int ipAddress = wifiInfo.getIpAddress();   
     Log.d(Tag, "int ip "+ipAddress);  
     if(ipAddress==0)return null;  
         return ((ipAddress & 0xff)+"."+(ipAddress>>8 & 0xff)+"." +(ipAddress>>16 & 0xff)+"."+(ipAddress>>24 & 0xff));  
} 

二十、启动Activity时不自动弹出软键盘 
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

二十一、获取屏幕当前分辨率
Display currDisplay = getWindowManager().getDefaultDisplay();//获取屏幕当前分辨率
int displayWidth = currDisplay.getWidth();
int displayHeight = currDisplay.getHeight();

二十二、判断是否有某种权限(例如:是否有访问SD卡的权限)
private static boolean hasExternalStoragePermission(Context context) {
        int perm = context.checkCallingOrSelfPermission(EXTERNAL_STORAGE_PERMISSION);
        return perm == PackageManager.PERMISSION_GRANTED;
    }

二十三、图片处理
    <pre name="code" class="java">    1、// 放大缩小图片  
    public static Bitmap zoomBitmap(Bitmap bitmap, int w, int h) {  
        int width = bitmap.getWidth();  
        int height = bitmap.getHeight();  
        Matrix matrix = new Matrix();  
        float scaleWidht = ((float) w / width);  
        float scaleHeight = ((float) h / height);  
        matrix.postScale(scaleWidht, scaleHeight);  
        Bitmap newbmp = Bitmap.createBitmap(bitmap, 0, 0, width, height,  
                matrix, true);  
        return newbmp;  
    }
    
    2、// 将Drawable转化为Bitmap  
    public static Bitmap drawableToBitmap(Drawable drawable) {  
        int width = drawable.getIntrinsicWidth();  
        int height = drawable.getIntrinsicHeight();  
        Bitmap bitmap = Bitmap.createBitmap(width, height, drawable  
                .getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888  
                : Bitmap.Config.RGB_565);  
        Canvas canvas = new Canvas(bitmap);  
        drawable.setBounds(0, 0, width, height);  
        drawable.draw(canvas);  
        return bitmap;  
 
    }

   
    3、// 获得圆角图片的方法  
    public static Bitmap getRoundedCornerBitmap(Bitmap bitmap, float roundPx) {  
        if(bitmap == null){  
            return null;  
        }  
          
        Bitmap output = Bitmap.createBitmap(bitmap.getWidth(),  
                bitmap.getHeight(), Config.ARGB_8888);  
        Canvas canvas = new Canvas(output);  
 
        final int color = 0xff424242;  
        final Paint paint = new Paint();  
        final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());  
        final RectF rectF = new RectF(rect);  
 
        paint.setAntiAlias(true);  
        canvas.drawARGB(0, 0, 0, 0);  
        paint.setColor(color);  
        canvas.drawRoundRect(rectF, roundPx, roundPx, paint);  
 
        paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));  
        canvas.drawBitmap(bitmap, rect, rect, paint);  
        return output;  
    }  


    4、// 获得带倒影的图片方法  
    public static Bitmap createReflectionImageWithOrigin(Bitmap bitmap) {  
        final int reflectionGap = 4;  
        int width = bitmap.getWidth();  
        int height = bitmap.getHeight();  
 
        Matrix matrix = new Matrix();  
        matrix.preScale(1, -1);  
 
        Bitmap reflectionImage = Bitmap.createBitmap(bitmap, 0, height / 2,  
                width, height / 2, matrix, false);  
 
        Bitmap bitmapWithReflection = Bitmap.createBitmap(width,  
                (height + height / 2), Config.ARGB_8888);  
 
        Canvas canvas = new Canvas(bitmapWithReflection);  
        canvas.drawBitmap(bitmap, 0, 0, null);  
        Paint deafalutPaint = new Paint();  
        canvas.drawRect(0, height, width, height + reflectionGap, deafalutPaint);  
 
        canvas.drawBitmap(reflectionImage, 0, height + reflectionGap, null);  
 
        Paint paint = new Paint();  
        LinearGradient shader = new LinearGradient(0, bitmap.getHeight(), 0,  
                bitmapWithReflection.getHeight() + reflectionGap, 0x70ffffff,  
                0x00ffffff, TileMode.CLAMP);  
        paint.setShader(shader);  
        // Set the Transfer mode to be porter duff and destination in  
        paint.setXfermode(new PorterDuffXfermode(Mode.DST_IN));  
        // Draw a rectangle using the paint with our linear gradient  
        canvas.drawRect(0, height, width, bitmapWithReflection.getHeight()  
                + reflectionGap, paint);  
 
        return bitmapWithReflection;  
    }  
 

} 

 /**
     * 判断是否为平板
     *  
     * @return
     */  
    private boolean isPad() {  
        WindowManager wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE);  
        Display display = wm.getDefaultDisplay();  
        // 屏幕宽度  
        float screenWidth = display.getWidth();  
        // 屏幕高度  
        float screenHeight = display.getHeight();  
        DisplayMetrics dm = new DisplayMetrics();  
        display.getMetrics(dm);  
        double x = Math.pow(dm.widthPixels / dm.xdpi, 2);  
        double y = Math.pow(dm.heightPixels / dm.ydpi, 2);  
        // 屏幕尺寸  
        double screenInches = Math.sqrt(x + y);  
        // 大于6尺寸则为Pad  
        if (screenInches >= 6.0) {  
            return true;  
        }  
        return false;  
    }