聲明
歡迎轉載,但請保留文章原始出處:)博客園:http://www.cnblogs.com
農民伯伯: http://over140.cnblogs.com
正文
1、發送不重復的通知(Notification)
public
static
void sendNotification(Context context, String title,
String message, Bundle extras) {
Intent mIntent = new Intent(context, FragmentTabsActivity. class);
mIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
mIntent.putExtras(extras);
int requestCode = ( int) System.currentTimeMillis();
PendingIntent mContentIntent = PendingIntent.getActivity(context,
requestCode, mIntent, 0);
Notification mNotification = new NotificationCompat.Builder(context)
.setContentTitle(title).setSmallIcon(R.drawable.app_icon)
.setContentIntent(mContentIntent).setContentText(message)
.build();
mNotification.flags |= Notification.FLAG_AUTO_CANCEL;
mNotification.defaults = Notification.DEFAULT_ALL;
NotificationManager mNotificationManager = (NotificationManager) context
.getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(requestCode, mNotification);
}
String message, Bundle extras) {
Intent mIntent = new Intent(context, FragmentTabsActivity. class);
mIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
mIntent.putExtras(extras);
int requestCode = ( int) System.currentTimeMillis();
PendingIntent mContentIntent = PendingIntent.getActivity(context,
requestCode, mIntent, 0);
Notification mNotification = new NotificationCompat.Builder(context)
.setContentTitle(title).setSmallIcon(R.drawable.app_icon)
.setContentIntent(mContentIntent).setContentText(message)
.build();
mNotification.flags |= Notification.FLAG_AUTO_CANCEL;
mNotification.defaults = Notification.DEFAULT_ALL;
NotificationManager mNotificationManager = (NotificationManager) context
.getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(requestCode, mNotification);
}
代碼說明:
關鍵點在這個requestCode,這里使用的是當前系統時間,巧妙的保證了每次都是一個新的Notification產生。
2、代碼設置TextView的樣式
使用過自定義Dialog可能馬上會想到用如下代碼:
new TextView(this,null,R.style.text_style);
但你運行這代碼你會發現毫無作用!正確用法:
new TextView(
new ContextThemeWrapper(
this, R.style.text_style))
來自這里。
3、 ip地址轉成8位十六進制串
/**
ip轉16進制
*/
public static String ipToHex(String ips) {
StringBuffer result = new StringBuffer();
if (ips != null) {
StringTokenizer st = new StringTokenizer(ips, ".");
while (st.hasMoreTokens()) {
String token = Integer.toHexString(Integer.parseInt(st.nextToken()));
if (token.length() == 1)
token = "0" + token;
result.append(token);
}
}
return result.toString();
}
/** 16進制轉ip */
public static String texToIp(String ips) {
try {
StringBuffer result = new StringBuffer();
if (ips != null && ips.length() == 8) {
for ( int i = 0; i < 8; i += 2) {
if (i != 0)
result.append('.');
result.append(Integer.parseInt(ips.substring(i, i + 2), 16));
}
}
return result.toString();
} catch (NumberFormatException ex) {
Logger.e(ex);
}
return "";
}
public static String ipToHex(String ips) {
StringBuffer result = new StringBuffer();
if (ips != null) {
StringTokenizer st = new StringTokenizer(ips, ".");
while (st.hasMoreTokens()) {
String token = Integer.toHexString(Integer.parseInt(st.nextToken()));
if (token.length() == 1)
token = "0" + token;
result.append(token);
}
}
return result.toString();
}
/** 16進制轉ip */
public static String texToIp(String ips) {
try {
StringBuffer result = new StringBuffer();
if (ips != null && ips.length() == 8) {
for ( int i = 0; i < 8; i += 2) {
if (i != 0)
result.append('.');
result.append(Integer.parseInt(ips.substring(i, i + 2), 16));
}
}
return result.toString();
} catch (NumberFormatException ex) {
Logger.e(ex);
}
return "";
}
ip:192.168.68.128 16 =>hex :c0a84480
4、WebView保留縮放功能但隱藏縮放控件
mWebView.getSettings().setSupportZoom(
true);
mWebView.getSettings().setBuiltInZoomControls( true);
if (DeviceUtils.hasHoneycomb())
mWebView.getSettings().setDisplayZoomControls( false);
mWebView.getSettings().setBuiltInZoomControls( true);
if (DeviceUtils.hasHoneycomb())
mWebView.getSettings().setDisplayZoomControls( false);
注意:setDisplayZoomControls是在API Level 11中新增。
5、獲取網絡類型名稱
public
static String getNetworkTypeName(Context context) {
if (context != null) {
ConnectivityManager connectMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectMgr != null) {
NetworkInfo info = connectMgr.getActiveNetworkInfo();
if (info != null) {
switch (info.getType()) {
case ConnectivityManager.TYPE_WIFI:
return "WIFI";
case ConnectivityManager.TYPE_MOBILE:
return getNetworkTypeName(info.getSubtype());
}
}
}
}
return getNetworkTypeName(TelephonyManager.NETWORK_TYPE_UNKNOWN);
}
public static String getNetworkTypeName( int type) {
switch (type) {
case TelephonyManager.NETWORK_TYPE_GPRS:
return "GPRS";
case TelephonyManager.NETWORK_TYPE_EDGE:
return "EDGE";
case TelephonyManager.NETWORK_TYPE_UMTS:
return "UMTS";
case TelephonyManager.NETWORK_TYPE_HSDPA:
return "HSDPA";
case TelephonyManager.NETWORK_TYPE_HSUPA:
return "HSUPA";
case TelephonyManager.NETWORK_TYPE_HSPA:
return "HSPA";
case TelephonyManager.NETWORK_TYPE_CDMA:
return "CDMA";
case TelephonyManager.NETWORK_TYPE_EVDO_0:
return "CDMA - EvDo rev. 0";
case TelephonyManager.NETWORK_TYPE_EVDO_A:
return "CDMA - EvDo rev. A";
case TelephonyManager.NETWORK_TYPE_EVDO_B:
return "CDMA - EvDo rev. B";
case TelephonyManager.NETWORK_TYPE_1xRTT:
return "CDMA - 1xRTT";
case TelephonyManager.NETWORK_TYPE_LTE:
return "LTE";
case TelephonyManager.NETWORK_TYPE_EHRPD:
return "CDMA - eHRPD";
case TelephonyManager.NETWORK_TYPE_IDEN:
return "iDEN";
case TelephonyManager.NETWORK_TYPE_HSPAP:
return "HSPA+";
default:
return "UNKNOWN";
}
}
if (context != null) {
ConnectivityManager connectMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectMgr != null) {
NetworkInfo info = connectMgr.getActiveNetworkInfo();
if (info != null) {
switch (info.getType()) {
case ConnectivityManager.TYPE_WIFI:
return "WIFI";
case ConnectivityManager.TYPE_MOBILE:
return getNetworkTypeName(info.getSubtype());
}
}
}
}
return getNetworkTypeName(TelephonyManager.NETWORK_TYPE_UNKNOWN);
}
public static String getNetworkTypeName( int type) {
switch (type) {
case TelephonyManager.NETWORK_TYPE_GPRS:
return "GPRS";
case TelephonyManager.NETWORK_TYPE_EDGE:
return "EDGE";
case TelephonyManager.NETWORK_TYPE_UMTS:
return "UMTS";
case TelephonyManager.NETWORK_TYPE_HSDPA:
return "HSDPA";
case TelephonyManager.NETWORK_TYPE_HSUPA:
return "HSUPA";
case TelephonyManager.NETWORK_TYPE_HSPA:
return "HSPA";
case TelephonyManager.NETWORK_TYPE_CDMA:
return "CDMA";
case TelephonyManager.NETWORK_TYPE_EVDO_0:
return "CDMA - EvDo rev. 0";
case TelephonyManager.NETWORK_TYPE_EVDO_A:
return "CDMA - EvDo rev. A";
case TelephonyManager.NETWORK_TYPE_EVDO_B:
return "CDMA - EvDo rev. B";
case TelephonyManager.NETWORK_TYPE_1xRTT:
return "CDMA - 1xRTT";
case TelephonyManager.NETWORK_TYPE_LTE:
return "LTE";
case TelephonyManager.NETWORK_TYPE_EHRPD:
return "CDMA - eHRPD";
case TelephonyManager.NETWORK_TYPE_IDEN:
return "iDEN";
case TelephonyManager.NETWORK_TYPE_HSPAP:
return "HSPA+";
default:
return "UNKNOWN";
}
}
6、Android解壓Zip包
/**
* 解壓一個壓縮文檔 到指定位置
*
* @param zipFileString 壓縮包的名字
* @param outPathString 指定的路徑
* @throws Exception
*/
public static void UnZipFolder(String zipFileString, String outPathString) throws Exception {
java.util.zip.ZipInputStream inZip = new java.util.zip.ZipInputStream( new java.io.FileInputStream(zipFileString));
java.util.zip.ZipEntry zipEntry;
String szName = "";
while ((zipEntry = inZip.getNextEntry()) != null) {
szName = zipEntry.getName();
if (zipEntry.isDirectory()) {
// get the folder name of the widget
szName = szName.substring(0, szName.length() - 1);
java.io.File folder = new java.io.File(outPathString + java.io.File.separator + szName);
folder.mkdirs();
} else {
java.io.File file = new java.io.File(outPathString + java.io.File.separator + szName);
file.createNewFile();
// get the output stream of the file
java.io.FileOutputStream out = new java.io.FileOutputStream(file);
int len;
byte[] buffer = new byte[1024];
// read (len) bytes into buffer
while ((len = inZip.read(buffer)) != -1) {
// write (len) byte from buffer at the position 0
out.write(buffer, 0, len);
out.flush();
}
out.close();
}
} // end of while
inZip.close();
} // end of func
* 解壓一個壓縮文檔 到指定位置
*
* @param zipFileString 壓縮包的名字
* @param outPathString 指定的路徑
* @throws Exception
*/
public static void UnZipFolder(String zipFileString, String outPathString) throws Exception {
java.util.zip.ZipInputStream inZip = new java.util.zip.ZipInputStream( new java.io.FileInputStream(zipFileString));
java.util.zip.ZipEntry zipEntry;
String szName = "";
while ((zipEntry = inZip.getNextEntry()) != null) {
szName = zipEntry.getName();
if (zipEntry.isDirectory()) {
// get the folder name of the widget
szName = szName.substring(0, szName.length() - 1);
java.io.File folder = new java.io.File(outPathString + java.io.File.separator + szName);
folder.mkdirs();
} else {
java.io.File file = new java.io.File(outPathString + java.io.File.separator + szName);
file.createNewFile();
// get the output stream of the file
java.io.FileOutputStream out = new java.io.FileOutputStream(file);
int len;
byte[] buffer = new byte[1024];
// read (len) bytes into buffer
while ((len = inZip.read(buffer)) != -1) {
// write (len) byte from buffer at the position 0
out.write(buffer, 0, len);
out.flush();
}
out.close();
}
} // end of while
inZip.close();
} // end of func
7、 從assets中讀取文本和圖片資源
/**
從assets 文件夾中讀取文本數據
*/
public static String getTextFromAssets( final Context context, String fileName) {
String result = "";
try {
InputStream in = context.getResources().getAssets().open(fileName);
// 獲取文件的字節數
int lenght = in.available();
// 創建byte數組
byte[] buffer = new byte[lenght];
// 將文件中的數據讀到byte數組中
in.read(buffer);
result = EncodingUtils.getString(buffer, "UTF-8");
in.close();
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
/** 從assets 文件夾中讀取圖片 */
public static Drawable loadImageFromAsserts( final Context ctx, String fileName) {
try {
InputStream is = ctx.getResources().getAssets().open(fileName);
return Drawable.createFromStream(is, null);
} catch (IOException e) {
if (e != null) {
e.printStackTrace();
}
} catch (OutOfMemoryError e) {
if (e != null) {
e.printStackTrace();
}
} catch (Exception e) {
if (e != null) {
e.printStackTrace();
}
}
return null;
}
public static String getTextFromAssets( final Context context, String fileName) {
String result = "";
try {
InputStream in = context.getResources().getAssets().open(fileName);
// 獲取文件的字節數
int lenght = in.available();
// 創建byte數組
byte[] buffer = new byte[lenght];
// 將文件中的數據讀到byte數組中
in.read(buffer);
result = EncodingUtils.getString(buffer, "UTF-8");
in.close();
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
/** 從assets 文件夾中讀取圖片 */
public static Drawable loadImageFromAsserts( final Context ctx, String fileName) {
try {
InputStream is = ctx.getResources().getAssets().open(fileName);
return Drawable.createFromStream(is, null);
} catch (IOException e) {
if (e != null) {
e.printStackTrace();
}
} catch (OutOfMemoryError e) {
if (e != null) {
e.printStackTrace();
}
} catch (Exception e) {
if (e != null) {
e.printStackTrace();
}
}
return null;
}
系列