发短信
//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