編輯:關於Android編程
一般用在讀取手機通訊錄上傳,這一塊比較多。
import java.util.ArrayList;
import java.util.List;
import android.content.ContentResolver;
import android.content.Context;
import android.database.Cursor;
import android.provider.ContactsContract.CommonDataKinds.Phone;
import android.text.TextUtils;
import com.iss.starwish.bean.PhoneContact;
/**
* 讀取手機聯系人信息
*/
public class ReadPhoneContactUtil {
/**
* 通過內容觀察者,或者手機聯系人相關的信息
**/
public static List getPhoneContacts(Context mContext) {
List phoneContacts = new ArrayList();
ContentResolver resolver = mContext.getContentResolver();
String[] PHONES_PROJECTION = new String[] { Phone.NUMBER,Phone.DISPLAY_NAME };
// 獲取手機聯系人
Cursor phoneCursor = resolver.query(Phone.CONTENT_URI,PHONES_PROJECTION, null, null, null);
if (phoneCursor != null) {
while (phoneCursor.moveToNext()) {
// 得到手機號碼
String phoneNumber = phoneCursor.getString(0);
// 當手機號碼為空的或者為空字段 跳過當前循環
if (TextUtils.isEmpty(phoneNumber))
continue;
// 得到聯系人名稱
String contactName = phoneCursor.getString(1);
phoneContacts.add(new PhoneContact(contactName,phoneNumber));
}
}
return phoneContacts;
}
}
這個最常用的是在國際化或者一鍵修改主題這一塊,根據不同的語言環境,切換不同的字符串標識。根據不同的文件名,切換不同的主題
package net.tianyouwang.utils;
import android.content.Context;
/**
* 通過字段名稱來動態的獲取資源的id,再來使用。此類,可以通過字段名稱動態獲取id。
*/
public class ResourceUtil {
public static int getLayoutId(Context context, String paramString) {
return context.getResources().getIdentifier(paramString, "layout",
context.getPackageName());
}
public static int getStringId(Context context, String paramString) {
return context.getResources().getIdentifier(paramString, "string",
context.getPackageName());
}
public static int getDrawableId(Context context, String paramString) {
return context.getResources().getIdentifier(paramString,
"drawable", context.getPackageName());
}
public static int getStyleId(Context context, String paramString) {
return context.getResources().getIdentifier(paramString,
"style", context.getPackageName());
}
public static int getId(Context context, String paramString) {
return context.getResources().getIdentifier(paramString,
"id", context.getPackageName());
}
public static int getColorId(Context context, String paramString) {
return context.getResources().getIdentifier(paramString,
"color", context.getPackageName());
}
public static int getAnimationId(Context context, String paramString) {
return context.getResources().getIdentifier(paramString,
"anim", context.getPackageName());
}
public static int getBooleanId(Context context, String paramString) {
return context.getResources().getIdentifier(paramString,
"bool", context.getPackageName());
}
public static int getArrayId(Context context, String paramString) {
return context.getResources().getIdentifier(paramString,
"array", context.getPackageName());
}
}
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import android.os.Environment;
import android.os.StatFs;
import android.text.TextUtils;
/***
* SDCard的剩余容量判斷操作
*
*/
public class SDCardAvailableUtils {
private static final int imageSize = 1*1024*1024;//1M
public static boolean isExistSDCard() {
if (android.os.Environment.getExternalStorageState().equals(
android.os.Environment.MEDIA_MOUNTED)
&& getAvailableStore(Environment.getExternalStorageDirectory().getPath()) > imageSize) {
return true;
} else
return false;
}
public static void saveDatatoLocalFile(String data, String filePath) {
if (!TextUtils.isEmpty(data) && !TextUtils.isEmpty(filePath)) {
File file = new File(filePath);
FileOutputStream outStr = null;
try {
if (!file.exists()) {
file.createNewFile();
}
outStr = new FileOutputStream(file);
if (outStr != null) {
outStr.write(data.getBytes());
outStr.flush();
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (outStr != null) {
try {
outStr.close();
} catch (IOException e) {
e.printStackTrace();
} finally {
outStr = null;
}
}
}
}
}
/**
* 獲取存儲卡的剩余容量,單位為字節
*
* @param filePath
* @return availableSpare
*/
public static long getAvailableStore(String filePath) {
// 取得sdcard文件路徑
StatFs statFs = new StatFs(filePath);
// 獲取block的SIZE
long blocSize = statFs.getBlockSize();
// 獲取BLOCK數量
long totalBlocks = statFs.getBlockCount();
// 可使用的Block的數量
long availaBlock = statFs.getAvailableBlocks();
long total = totalBlocks * blocSize;//總的存儲空間
long availableSpare = availaBlock * blocSize;//當前可用存儲空間
return availableSpare;
}
}
android 獲取當前隱藏和未隱藏wifi的加密方式(安全性)
1.一般WIFI加密有幾種方式: (1).WPA-PSK/WPA2-PSK(目前最安全家用加密) (2).WPA/WPA2(較不安全) (3).W
Android下的CMD命令之關機重啟及重啟recovery
Android剛興起的時候,著實讓一些小眾軟件火了一把,切水果,Tom貓,吹裙子就是其中的代表,當然還有實用性很強的關機重啟軟件,我們去百度上搜索一下。截圖:一.了解CM
【Android】讓HeaderView也參與回收復用機制,自我感覺是優雅的為 RecyclerView 添加 HeaderView (FooterView)的解決方案
本文站在巨人的肩膀上 自我感覺又進了一步而成。基於翔神的大作基礎之上寫的一個為RecyclerView添加HeaderView FooterView 的另一種解決方案,上
android開發步步為營之31:TabActivity的用法Tab顯示在底部
Tab標簽頁是一個非常常用的控件,.net裡面就有multipage+tabstrip組合通過標簽的切換實現頁面的切換,同理html裡面我們常用frameset來