常用代码

发短信

//1,拿到短信管理器
SmsManager sm = SmsManager.getDefault();
//2.切割短信
ArrayList<String> smss = sm.divideMessage(content);
//3,循环发送短信内容
for (String string : smss) {
    sm.sendTextMessage(phone, null, string, null, null);
}

打电话

//创建意图对象
Intent intent = new Intent();
//把动作封装到意图对象中
intent.setAction(Intent.ACTION_CALL);
//设置打给谁
intent.setData(Uri.parse("tel:"+phone));
//把动作告诉系统
startActivity(intent);

SharedPreference

  • 存储
//使用SharedPreference
SharedPreferences sp = getSharedPreferences("info", MODE_PRIVATE);
//拿到sp的编辑器
Editor ed = sp.edit();
ed.putString("name", name);
ed.putString("pass", pass);
//提交
ed.commit();
  • 取出
SharedPreferences sp = getSharedPreferences("info", MODE_PRIVATE);
String name = sp.getString("name", "");
String pass = sp.getString("pass", "");

获取sd卡存储空间

File path = Environment.getExternalStorageDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize;
long totalBlocks;
long availableBlocks;

//获取当前系统版本的等级
if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.JELLY_BEAN_MR2){
    //4.3以上
    blockSize = stat.getBlockSizeLong();
    totalBlocks = stat.getBlockCountLong();
    availableBlocks = stat.getAvailableBlocksLong();
}else{
    blockSize = stat.getBlockSize();
    totalBlocks = stat.getBlockCount();
    availableBlocks = stat.getAvailableBlocks();
}
TextView tv  = (TextView) findViewById(R.id.tv);
tv.setText(formatSize(totalBlocks*blockSize));

读写存储卡

//外部存储路径
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){//是否挂载
    File file = new File(Environment.getExternalStorageDirectory(),"info.txt");
    if(file.exists()){

//内部存储路径
File file = new File(getFilesDir(),"info.txt");
//获取输出流,带权限
FileOutputStream out = openFileOutput("info.txt", MODE_PRIVATE);

对话框

//确定取消对话框
public void click(View v){
    AlertDialog.Builder builder = new Builder(this);
    builder.setIcon(android.R.drawable.alert_dark_frame);
    builder.setTitle("欲练此功,必先自宫");
    builder.setMessage("你确定要练?");
    //确定按钮
    builder.setPositiveButton("确定", new OnClickListener() {

        @Override
        public void onClick(DialogInterface dialog, int which) {
            Toast.makeText(MainActivity.this, "狠人啊",0).show();

        }
    });
    //取消按钮
    builder.setNegativeButton("取消", new OnClickListener() {

        @Override
        public void onClick(DialogInterface dialog, int which) {
            Toast.makeText(MainActivity.this, "迷途知返",0).show();

        }
    });
    //生成对话框对象
    AlertDialog  ad = builder.create();
    ad.show();
}

单选框

//单选框
public void click2(View v){
    AlertDialog.Builder builder = new Builder(this);
    builder.setTitle("请选择性别");
    final String [] items = new String[]{
            "男",
            "女"
    };
    builder.setSingleChoiceItems(items, -1, new OnClickListener() {
        //dialog触发这个方法的对话框
        @Override
        public void onClick(DialogInterface dialog, int which) {
            Toast.makeText(MainActivity.this, "您选择的是:"+items[which], 0).show();
            //关闭对话框
            dialog.dismiss();
        }
    });
    builder.show();
}

多选框

//多选框
public void click3(View v){
    AlertDialog.Builder builder = new Builder(this);
    builder.setTitle("请选择偶像");
    final String [] items = new String[]{
            "达芬奇",
            "令狐冲",
            "东方不败"
    };
    final boolean [] checkedItems = new boolean[]{
            true,
            false,
            false
    };
    builder.setMultiChoiceItems(items, checkedItems, new OnMultiChoiceClickListener() {

    @Override
    public void onClick(DialogInterface dialog, int which, boolean isChecked) {
        checkedItems[which] = isChecked;
    }
    });
    //设置确定按钮
    builder.setPositiveButton("确定",new OnClickListener() {

    @Override
    public void onClick(DialogInterface dialog, int which) {
        dialog.dismiss();
        String text = "";
        for(int i=0;i<items.length;i++){
            text+=checkedItems[i]?items[i]+",":"";
        }
        Toast.makeText(MainActivity.this, text, 0).show();
    }
    });
    builder.show();
}

获取联系人信息

public class ContactInfoUtils {
    /**
     * 获取系统里面全部的联系人信息
     * 获取联系人就要操作联系人数据库,而这个数据库是私有的,就需要内容提供者.
        为了能获取到内容提供者的解析器,需要传递进来一个参数:上下文
     * @param context
     *            上下文
     * @return
     */
    public static List<ContactInfo> getAllContacts(Context context) {//获取系统中所有联系人信息的方法,返回值为List
        List<ContactInfo> contanctInfos = new ArrayList<ContactInfo>();
        // 1. 查询raw_contacts 把 联系人的 id获取出来
        ContentResolver resolver = context.getContentResolver();//拿到一个内容提供者的解析器
        // 获取raw_contacts表的uri
        Uri uri = Uri.parse("content://com.android.contacts/raw_contacts");//最重要的第一个参数是Uri,所有的内容提供者前缀都是content://
        // 获取data表的uri
        Uri datauri = Uri.parse("content://com.android.contacts/data");
        Cursor cursor = resolver.query(uri, null, null, null, null);//查询的操作,返回值为cursor的结果集
        //关心的是contact_id
        while (cursor.moveToNext()) {
            String id = cursor.getString(cursor.getColumnIndex("contact_id"));
            System.out.println("联系人的id:" + id);
            if (id != null) {
                ContactInfo contactInfo = new ContactInfo();
                // 2.根据id查询data表 获取联系人的数据。
                Cursor datacursor = resolver.query(datauri, null,
                        "raw_contact_id=?", new String[] { id }, null);//第1个参数是Uri
                while (datacursor.moveToNext()) {
                    String data1 = datacursor.getString(datacursor
                            .getColumnIndex("data1"));
                    String mimetype = datacursor.getString(datacursor
                            .getColumnIndex("mimetype"));
                    if ("vnd.android.cursor.item/phone_v2".equals(mimetype)) {
                        contactInfo.setPhone(data1);
                    } else if ("vnd.android.cursor.item/email_v2"
                            .equals(mimetype)) {
                        contactInfo.setEmail(data1);
                    } else if ("vnd.android.cursor.item/name".equals(mimetype)) {
                        contactInfo.setName(data1);
                    }
                }
                datacursor.close();
                contanctInfos.add(contactInfo);
            }
        }
        cursor.close();
        return contanctInfos;
    }
}

BitMap、Drawable、inputStream及byte[] 互转

//BitMap  to   inputStream
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    bm.compress(Bitmap.CompressFormat.PNG, 100, baos);
    InputStream isBm = new ByteArrayInputStream(baos .toByteArray());

 //BitMap  to   byte[]
  Bitmap defaultIcon = BitmapFactory.decodeStream(in);
  ByteArrayOutputStream stream = new ByteArrayOutputStream();
  defaultIcon.compress(Bitmap.CompressFormat.JPEG, 100, stream);
  byte[] bitmapdata = stream.toByteArray();
 //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();

  //byte[]  to  Bitmap 
  Bitmap bitmap =BitmapFactory.decodeByteArray(byte[], 0,byte[].length);

uri相关

  • 资源路径 android.resource://com.packagename/raw/xxxx
  • 根据uri获取路径
Uri uri = data.getData();

String[] proj = { MediaStore.Images.Media.DATA };

Cursor actualimagecursor = managedQuery(uri,proj,null,null,null);

int actual_image_column_index = actualimagecursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);

actualimagecursor.moveToFirst();

String img_path = actualimagecursor.getString(actual_image_column_index);

File file = new File(img_path);
  • android 根据uri获取真实路径
    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;
    }

图片文件的路径地址
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/0821/1660.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值