1. dp  px  相互转换---------------
public
class DensityUtil { /** * 根据手机的分辨率从 dip 的单位 转成为 px(像素) */ public static int dip2px(Context context, float dpValue) { final float scale = context.getResources().getDisplayMetrics().density; return (int) (dpValue * scale + 0.5f); } /** * 根据手机的分辨率从 px(像素) 的单位 转成为 dp */ public static int px2dip(Context context, float pxValue) { final float scale = context.getResources().getDisplayMetrics().density; return (int) (pxValue / scale + 0.5f); } }

private void turnGPSOn(){    String provider = Settings.Secure.getString(getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED);    if(!provider.contains("gps")){ //if gps is disabled        final Intent poke = new Intent();        poke.setClassName("com.android.settings", "com.android.settings.widget.SettingsAppWidgetProvider");         poke.addCategory(Intent.CATEGORY_ALTERNATIVE);        poke.setData(Uri.parse("3"));         sendBroadcast(poke);    }}private void turnGPSOff(){    String provider = Settings.Secure.getString(getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED);    if(provider.contains("gps")){ //if gps is enabled        final Intent poke = new Intent();        poke.setClassName("com.android.settings", "com.android.settings.widget.SettingsAppWidgetProvider");        poke.addCategory(Intent.CATEGORY_ALTERNATIVE);        poke.setData(Uri.parse("3"));         sendBroadcast(poke);    }}

root 下禁用组件pm disable com.htc.htclocationservice/com.htc.htclocationservice.AutoSettingReceiver

根据url获取真实路径    public static String getRealFilePath( final Context context, final Uri uri ) {        if ( null == uri ) return null;        final String scheme = uri.getScheme();        String data = null;        if ( scheme == null )            data = uri.getPath();        else if ( ContentResolver.SCHEME_FILE.equals( scheme ) ) {            data = uri.getPath();        } else if ( ContentResolver.SCHEME_CONTENT.equals( scheme ) ) {            Cursor cursor = context.getContentResolver().query( uri, new String[] { ImageColumns.DATA }, null, null, null );            if ( null != cursor ) {                if ( cursor.moveToFirst() ) {                    int index = cursor.getColumnIndex( ImageColumns.DATA );                    if ( index > -1 ) {                        data = cursor.getString( index );                    }                }                cursor.close();            }        }        return data;    }





  
Android 还原短信
ContentValues values = new ContentValues(); values.put("address", "123456789"); values.put("body", "haha"); values.put("date", "135123000000"); getContentResolver().insert(Uri.parse("content://sms/sent"), values);
横竖屏切换< activity android:name="MyActivity"  android:configChanges="orientation|keyboardHidden"> public void onConfigurationChanged(Configuration newConfig) {       super.onConfigurationChanged(newConfig);    if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {             //加入横屏要处理的代码    }else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {               //加入竖屏要处理的代码    }      }  
获取mac地址1、<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>    2private String getLocalMacAddress() {      WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);      WifiInfo info = wifi.getConnectionInfo();      return info.getMacAddress();    }  
获取sd卡状态/** 获取存储卡路径 */ File sdcardDir=Environment.getExternalStorageDirectory(); /** StatFs 看文件系统空间使用情况 */ StatFs statFs=new StatFs(sdcardDir.getPath()); /** Block 的 size*/ Long blockSize=statFs.getBlockSize(); /** 总 Block 数量 */ Long totalBlocks=statFs.getBlockCount(); /** 已使用的 Block 数量 */ Long availableBlocks=statFs.getAvailableBlocks(); 
Android获取状态栏和标题栏的高度1.Android获取状态栏高度:decorView是window中的最顶层view,可以从window中获取到decorView,然后decorView有个getWindowVisibleDisplayFrame方法可以获取到程序显示的区域,包括标题栏,但不包括状态栏。于是,我们就可以算出状态栏的高度了。Rect frame = new Rect();getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);int statusBarHeight = frame.top;2.获取标题栏高度:getWindow().findViewById(Window.ID_ANDROID_CONTENT)这个方法获取到的view就是程序不包括标题栏的部分,然后就可以知道标题栏的高度了。int contentTop = getWindow().findViewById(Window.ID_ANDROID_CONTENT).getTop();//statusBarHeight是上面所求的状态栏的高度int titleBarHeight = contentTop - statusBarHeight例子代码:package com.cn.lhq;import android.app.Activity;import android.graphics.Rect;import android.os.Bundle;import android.util.Log;import android.view.Window;import android.widget.ImageView;public class Main extends Activity { ImageView iv; @Override public void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  setContentView(R.layout.main);  iv = (ImageView) this.findViewById(R.id.ImageView01);  iv.post(new Runnable() {   public void run() {    viewInited();   }  });  Log.v("test", "== ok =="); } private void viewInited() {  Rect rect = new Rect();  Window window = getWindow();  iv.getWindowVisibleDisplayFrame(rect);  int statusBarHeight = rect.top;  int contentViewTop = window.findViewById(Window.ID_ANDROID_CONTENT)    .getTop();  int titleBarHeight = contentViewTop - statusBarHeight;  // 测试结果:ok之后 100多 ms 才运行了  Log.v("test", "=-init-= statusBarHeight=" + statusBarHeight    + " contentViewTop=" + contentViewTop + " titleBarHeight="    + titleBarHeight); }} <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical"    android:layout_width="fill_parent"    android:layout_height="fill_parent"> <ImageView   android:id="@+id/ImageView01"   android:layout_width="wrap_content"   android:layout_height="wrap_content"/></LinearLayout>
  //取得窗口属性        getWindowManager().getDefaultDisplay().getMetrics(dm);                //窗口的宽度        int screenWidth = dm.widthPixels;        //窗口高度        int screenHeight = dm.heightPixels;        textView = (TextView)findViewById(R.id.textView01);        textView.setText("屏幕宽度: " + screenWidth + "\n屏幕高度: " + screenHeight);二、获取状态栏高度decorView是window中的最顶层view,可以从window中获取到decorView,然后decorView有个getWindowVisibleDisplayFrame方法可以获取到程序显示的区域,包括标题栏,但不包括状态栏。 于是,我们就可以算出状态栏的高度了。view plainRect frame = new Rect();getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);int statusBarHeight = frame.top;三、获取标题栏高度getWindow().findViewById(Window.ID_ANDROID_CONTENT)这个方法获取到的view就是程序不包括标题栏的部分,然后就可以知道标题栏的高度了。view plainint contentTop = getWindow().findViewById(Window.ID_ANDROID_CONTENT).getTop();//statusBarHeight是上面所求的状态栏的高度int titleBarHeight = contentTop - statusBarHeight
        问题的提出         Android Home键系统负责监听,捕获后系统自动处理。有时候,系统的处理往往不随我们意,想自己处理点击Home后的事件,那怎么办?         问题的解决         先禁止Home键,再在onKeyDown里处理按键值,点击Home键的时候就把程序关闭,或者随你XXOO。 @Override public boolean onKeyDown(int keyCode, KeyEvent event){ // TODO Auto-generated method stub  if(KeyEvent.KEYCODE_HOME==keyCode)    android.os.Process.killProcess(android.os.Process.myPid());     return super.onKeyDown(keyCode, event);  } @Override public void onAttachedToWindow() { // TODO Auto-generated method stub    this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);    super.onAttachedToWindow(); }  加权限禁止Home键<uses-permission android:name="android.permission.DISABLE_KEYGUARD"></uses-permission>

  

public class StartupReceiver extends BroadcastReceiver {      @Override    public void onReceive(Context context, Intent intent) {      Intent startupintent = new Intent(context,StrongTracks.class);      startupintent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);      context.startActivity(startupintent);    }    }  2)<receiver  android:name=".StartupReceiver">  <intent-filter>      <!-- 系统启动完成后会调用 -->      <action          android:name="android.intent.action.BOOT_COMPLETED">      </action>  </intent-filter>  </receiver> 
 window =dialog.getWindow();//    得到对话框的窗口.        WindowManager.LayoutParams wl = window.getAttributes();         wl.x = x;//这两句设置了对话框的位置.0为中间         wl.y =y;         wl.width =w;         wl.height =h;         wl.alpha =0.6f;// 这句设置了对话框的透明度   
1、找到android模拟器安装目录:C:\Documents and Settings\Administrator\.android\avd\AVD23.avd2、编辑config.ini文件,就是这块配置错误导致错误产生。3、如果硬盘空间比较紧张,可以把模拟器文件放到其它盘符上:你可以在命令行下用mkcard创建一个SDCARD文件,如: mksdcard 50M D:\sdcard.img4、下面代码可以整个覆盖原来的config文件 hw.sdCard=yes hw.lcd.density=240 skin.path=800×480 skin.name=800×480 vm.heapSize=24 sdcard.path=D:\sdcard.img hw.ramSize=512 image.sysdir.1=platforms\android-8\images\5、OK,模拟器正常运行

  

挪动dialog的位置Window mWindow = dialog.getWindow();  WindowManager.LayoutParams lp = mWindow.getAttributes();  lp.x = 10;   //新位置X坐标  lp.y = -100; //新位置Y坐标  dialog.onWindowAttributesChanged(lp);

判断网络状态<uses-permission      android:name="android.permission.ACCESS_NETWORK_STATE" />     private boolean getNetWorkStatus() {       boolean netSataus = false;     ConnectivityManager cwjManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);       cwjManager.getActiveNetworkInfo();       if (cwjManager.getActiveNetworkInfo() != null) {     netSataus = cwjManager.getActiveNetworkInfo().isAvailable();     }       if (!netSataus) {     Builder b = new AlertDialog.Builder(this).setTitle("没有可用的网络")     .setMessage("是否对网络进行设置?");     b.setPositiveButton("", new DialogInterface.OnClickListener() {     public void onClick(DialogInterface dialog, int whichButton) {     Intent mIntent = new Intent("/");     ComponentName comp = new ComponentName(     "com.android.settings",     "com.android.settings.WirelessSettings");     mIntent.setComponent(comp);     mIntent.setAction("android.intent.action.VIEW");     startActivityForResult(mIntent,0);      }     }).setNeutralButton("", new DialogInterface.OnClickListener() {     public void onClick(DialogInterface dialog, int whichButton) {     dialog.cancel();     }     }).show();     }       return netSataus;     }  
设置 apnContentValues values = new ContentValues();values.put(NAME, "CMCC cmwap");values.put(APN, "cmwap");values.put(PROXY, "10.0.0.172");values.put(PORT, "80");values.put(MMSPROXY, "");values.put(MMSPORT, "");values.put(USER, "");values.put(SERVER, "");values.put(PASSWORD, "");values.put(MMSC, "");         values.put(TYPE, "");values.put(MCC, "460");values.put(MNC, "00");values.put(NUMERIC, "46000");reURI = getContentResolver().insert(Uri.parse("content://telephony/carriers"), values);//首选接入点"content://telephony/carriers/preferapn"

  

调节屏幕的亮度、、public void setBrightness(int level) { ContentResolver cr = getContentResolver(); Settings.System.putInt(cr, "screen_brightness", level); Window window = getWindow(); LayoutParams attributes = window.getAttributes(); float flevel = level; attributes.screenBrightness = flevel / 255; getWindow().setAttributes(attributes); } 
第一,root权限,这是必须的 第二,Runtime.getRuntime().exec("su -c reboot"); 第三,模拟器上运行不出来,必须真机 第四,运行时会提示你是否加入列表 , 同意就好
隐藏软键盘setContentView(R.layout.activity_main);        getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE |                WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
1、//隐藏软键盘   ((InputMethodManager)getSystemService(INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(WidgetSearchActivity.this.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);     2、//显示软键盘,控件ID可以是EditText,TextView   ((InputMethodManager)getSystemService(INPUT_METHOD_SERVICE)).showSoftInput(控件ID, 0); 

  

Bitmap 工具类(1) BitMap  to   inputStream:    ByteArrayOutputStream baos = new ByteArrayOutputStream();    bm.compress(Bitmap.CompressFormat.PNG, 100, baos);    InputStream isBm = new ByteArrayInputStream(baos .toByteArray());  (2)BitMap  to   byte[]:  Bitmap defaultIcon = BitmapFactory.decodeStream(in);  ByteArrayOutputStream stream = new ByteArrayOutputStream();  defaultIcon.compress(Bitmap.CompressFormat.JPEG, 100, stream);  byte[] bitmapdata = stream.toByteArray(); (3)Drawable  to   byte[]:  Drawable d; // the drawable (Captain Obvious, to the rescue!!!)  Bitmap bitmap = ((BitmapDrawable)d).getBitmap();  ByteArrayOutputStream stream = new ByteArrayOutputStream();  defaultIcon.compress(Bitmap.CompressFormat.JPEG, 100, bitmap);  byte[] bitmapdata = stream.toByteArray(); (4)byte[]  to  Bitmap :  Bitmap bitmap =BitmapFactory.decodeByteArray(byte[], 0,byte[].length);

  

发送指令:out = process.getOutputStream();out.write(("am start -a android.intent.action.VIEW -n com.android.browser/com.android.browser.BrowserActivity\n").getBytes());out.flush();InputStream in = process.getInputStream();BufferedReader re = new BufferedReader(new InputStreamReader(in));String line = null;while((line = re.readLine()) != null) {    Log.d("conio","[result]"+line);}

  

更多相关文章

  1. 如何判断Android/IOS是否安装应用。
  2. Android(安卓)webView 软键盘覆盖输入框,webView页面底部显示不全
  3. (Android) ContentProvider 实例
  4. Android(安卓)获取View高度的4种方法
  5. 安装APK文件的错误码定义
  6. Intent在Android中的几种用法[转]
  7. Android(安卓)GridView设置条目的高度与宽度相等、GridView条目
  8. android获得屏幕高度和宽度、状态栏高度

随机推荐

  1. eclipse android工程没有错却出现红叉
  2. iOS /Android多渠道打包方案、重签名方案
  3. 基于Android的小巫新闻客户端开发---显示
  4. (翻译)API-How Android(安卓)Draws Views
  5. M8或在明年用上Android(安卓)带Wifi与WAP
  6. Android(安卓)ColorMatrix 亮度矩阵 对比
  7. 以快板之名说Android(安卓)应用程序电源
  8. Android切近实战(十)
  9. 关于android滑屏菜单和tab菜单实现
  10. Android(安卓)OpenCV(三十三):霍夫圆检测