dip转px
1
2
3
4
5
|
public
int
convertDipOrPx( int
dip) { float
scale = MarketApplication.getMarketApplicationContext() .getResources().getDisplayMetrics().density; return
( int )
(dip * scale + 0 .5f
* (dip >= 0
? 1
: - 1 )); } |
获取当前窗体,并添加自定义view:
1
2
3
4
5
6
7
8
9
10
|
getWindowManager() .addView( overlay, new
WindowManager.LayoutParams( LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.TYPE_APPLICATION, WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE |
WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE, PixelFormat.TRANSLUCENT)); |
自定义fastScrollBar图片样式:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
try
{ Field
f = AbsListView. class .getDeclaredField( "mFastScroller" ); f.setAccessible( true ); Object
o = f.get(listView); f
= f.getType().getDeclaredField( "mThumbDrawable" ); f.setAccessible( true ); Drawable
drawable = (Drawable) f.get(o); drawable
= getResources().getDrawable(R.drawable.ic_launcher); f.set(o,
drawable); Toast.makeText( this ,
f.getType().getName(), 1000 ).show(); }
catch
(Exception e) { throw
new
RuntimeException(e); } |
=网络==================================
判断网络是否可用:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
/** *
网络是否可用 *
*
@param context *
@return */ public
static
boolean
isNetworkAvailable(Context context) { ConnectivityManager
mgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo[]
info = mgr.getAllNetworkInfo(); if
(info != null )
{ for
( int
i = 0 ;
i < info.length; i++) { if
(info[i].getState() == NetworkInfo.State.CONNECTED) { return
true ; } } } return
false ; } |
方法二:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
/* *
判断网络连接是否已开 2012-08-20true 已打开 false 未打开 */ public
static
boolean
isConn(Context context) { boolean
bisConnFlag = false ; ConnectivityManager
conManager = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo
network = conManager.getActiveNetworkInfo(); if
(network != null )
{ bisConnFlag
= conManager.getActiveNetworkInfo().isAvailable(); } return
bisConnFlag; } |
判断是不是Wifi连接:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
public
static
boolean
isWifiActive(Context icontext) { Context
context = icontext.getApplicationContext(); ConnectivityManager
connectivity = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo[]
info; if
(connectivity != null )
{ info
= connectivity.getAllNetworkInfo(); if
(info != null )
{ for
( int
i = 0 ;
i < info.length; i++) { if
(info[i].getTypeName().equals( "WIFI" ) &&
info[i].isConnected()) { return
true ; } } } } return
false ; } |
判断当前网络类型
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
/** *
网络方式检查 */ private
static
int
netCheck(Context context) { ConnectivityManager
conMan = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); State
mobile = conMan.getNetworkInfo(ConnectivityManager.TYPE_MOBILE) .getState(); State
wifi = conMan.getNetworkInfo(ConnectivityManager.TYPE_WIFI) .getState(); if
(wifi.equals(State.CONNECTED)) { return
DO_WIFI; }
else
if
(mobile.equals(State.CONNECTED)) { return
DO_3G; }
else
{ return
NO_CONNECTION; } } |
获取下载文件的真实名字
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
public
String getReallyFileName(String url) { StrictMode.setThreadPolicy( new
StrictMode.ThreadPolicy.Builder() .detectDiskReads().detectDiskWrites().detectNetwork()
//
这里可以替换为detectAll() //
就包括了磁盘读写和网络I/O .penaltyLog()
//
打印logcat,当然也可以定位到dropbox,通过文件保存相应的log .build()); StrictMode.setVmPolicy( new
StrictMode.VmPolicy.Builder() .detectLeakedSqlLiteObjects()
//
探测SQLite数据库操作 .penaltyLog()
//
打印logcat .penaltyDeath().build()); String
filename = "" ; URL
myURL; HttpURLConnection
conn = null ; if
(url == null
|| url.length() < 1 )
{ return
null ; } try
{ myURL
= new
URL(url); conn
= (HttpURLConnection) myURL.openConnection(); conn.connect(); conn.getResponseCode(); URL
absUrl = conn.getURL(); //
获得真实Url //
打印输出服务器Header信息 //
Map<String, List<String>> map = conn.getHeaderFields(); //
for (String str : map.keySet()) { //
if (str != null) { //
Log.e("H3c", str + map.get(str)); //
} //
} filename
= conn.getHeaderField( "Content-Disposition" ); //
通过Content-Disposition获取文件名,这点跟服务器有关,需要灵活变通 if
(filename == null
|| filename.length() < 1 )
{ filename
= URLDecoder.decode(absUrl.getFile(), "UTF-8" ); } }
catch
(MalformedURLException e) { e.printStackTrace(); }
catch
(IOException e) { e.printStackTrace(); }
finally
{ if
(conn != null )
{ conn.disconnect(); conn
= null ; } } return
filename; } |
=图片==========================
bitmap转Byte数组(微信分享就需要用到)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
public
byte []
bmpToByteArray( final
Bitmap bmp, final
boolean
needRecycle) { ByteArrayOutputStream
output = new
ByteArrayOutputStream(); bmp.compress(CompressFormat.PNG,
100 ,
output); if
(needRecycle) { bmp.recycle(); } byte []
result = output.toByteArray(); try
{ output.close(); }
catch
(Exception e) { e.printStackTrace(); } return
result; } |
1
2
3
4
5
6
7
8
9
|
public
Bitmap loadBitmap(Resources res, int
id) { BitmapFactory.Options
opt = new
BitmapFactory.Options(); opt.inPreferredConfig
= Bitmap.Config.RGB_565; opt.inPurgeable
= true ; opt.inInputShareable
= true ; InputStream
is = res.openRawResource(id); //
获取资源图片 return
BitmapFactory.decodeStream(is, null ,
opt); } |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
public
void
saveBitmapToFile(String url, String filePath) { File
iconFile = new
File(filePath); if
(!iconFile.getParentFile().exists()) { iconFile.getParentFile().mkdirs(); } if
(iconFile.exists() && iconFile.length() > 0 )
{ return ; } FileOutputStream
fos = null ; InputStream
is = null ; try
{ fos
= new
FileOutputStream(filePath); is
= new
URL(url).openStream(); int
data = is.read(); while
(data != - 1 )
{ fos.write(data); data
= is.read(); } }
catch
(IOException e) { e.printStackTrace(); }
finally
{ try
{ if
(is != null )
{ is.close(); } if
(fos != null )
{ fos.close(); } }
catch
(IOException e) { e.printStackTrace(); } } } |
=系统==============================
根据包名打开一个应用程序
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
public
boolean
openApp(String packageName) { PackageInfo
pi = null ; try
{ pi
= mPM.getPackageInfo(packageName, 0 ); }
catch
(NameNotFoundException e) { e.printStackTrace(); return
false ; } if
(pi == null )
{ return
false ; } Intent
resolveIntent = new
Intent(Intent.ACTION_MAIN, null ); resolveIntent.addCategory(Intent.CATEGORY_LAUNCHER); resolveIntent.setPackage(pi.packageName); List<ResolveInfo>
apps = mPM.queryIntentActivities(resolveIntent, 0 ); ResolveInfo
ri = null ; try
{ ri
= apps.iterator().next(); }
catch
(Exception e) { return
true ; } if
(ri != null )
{ String
tmpPackageName = ri.activityInfo.packageName; String
className = ri.activityInfo.name; Intent
intent = new
Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_LAUNCHER); ComponentName
cn = new
ComponentName(tmpPackageName, className); intent.setComponent(cn); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); MarketApplication.getMarketApplicationContext().startActivity( intent); }
else
{ return
false ; } return
true ; } |
判断是否APK是否安装过
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
public
boolean
checkApkExist(Context context, String packageName) { if
(packageName == null
|| "" .equals(packageName)) return
false ; try
{ ApplicationInfo
info = context.getPackageManager() .getApplicationInfo(packageName, PackageManager.GET_UNINSTALLED_PACKAGES); return
true ; }
catch
(NameNotFoundException e) { return
false ; }
catch
(NullPointerException e) { return
false ; } } |
安装APK
1
2
3
4
5
6
7
8
9
|
public
void
installApk(Context context, String strFileAllName) { File
file = new
File(strFileAllName); Intent
intent = new
Intent(); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setAction(Intent.ACTION_VIEW); String
type = "application/vnd.android.package-archive" ; intent.setDataAndType(Uri.fromFile(file),
type); context.startActivity(intent); } |
卸载APK
1
2
3
4
5
|
public
void
UninstallApk(Context context, String strPackageName) { Uri
packageURI = Uri.parse( "package:"
+ strPackageName); Intent
uninstallIntent = new
Intent(Intent.ACTION_DELETE, packageURI); context.startActivity(uninstallIntent); } |
判断SD卡是否可用
1
2
3
4
5
6
7
8
|
public
boolean
CheckSD() { if
(android.os.Environment.getExternalStorageState().equals( android.os.Environment.MEDIA_MOUNTED))
{ return
true ; }
else
{ return
false ; } } |
创建快捷方式:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
public
void
createShortCut(Context contxt) { //
if (isInstallShortcut()) {// 如果已经创建了一次就不会再创建了 //
return; //
} Intent
sIntent = new
Intent(Intent.ACTION_MAIN); sIntent.addCategory(Intent.CATEGORY_LAUNCHER); //
加入action,和category之后,程序卸载的时候才会主动将该快捷方式也卸载 sIntent.setClass(contxt,
Login. class ); Intent
installer = new
Intent(); installer.putExtra( "duplicate" ,
false ); installer.putExtra( "android.intent.extra.shortcut.INTENT" ,
sIntent); installer.putExtra( "android.intent.extra.shortcut.NAME" ,
"名字" ); installer.putExtra( "android.intent.extra.shortcut.ICON_RESOURCE" , Intent.ShortcutIconResource .fromContext(contxt,
R.drawable.icon)); installer.setAction( "com.android.launcher.action.INSTALL_SHORTCUT" ); contxt.sendBroadcast(installer); } |
判断快捷方式是否创建:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
private
boolean
isInstallShortcut() { boolean
isInstallShortcut = false ; final
ContentResolver cr = MarketApplication .getMarketApplicationContext().getContentResolver(); String
AUTHORITY = "com.android.launcher.settings" ; Uri
CONTENT_URI = Uri.parse( "content://"
+ AUTHORITY +
"/favorites?notify=true" ); Cursor
c = cr.query(CONTENT_URI, new
String[] { "title" ,
"iconResource"
}, "title=?" , new
String[] { "名字"
}, null ); if
(c != null
&& c.getCount() > 0 )
{ isInstallShortcut
= true ; } if
(c != null )
{ c.close(); } if
(isInstallShortcut) { return
isInstallShortcut; } AUTHORITY
= "com.android.launcher2.settings" ; CONTENT_URI
= Uri.parse( "content://"
+ AUTHORITY +
"/favorites?notify=true" ); c
= cr.query(CONTENT_URI, new
String[] { "title" ,
"iconResource"
}, "title=?" ,
new
String[] { "名字"
}, null ); if
(c != null
&& c.getCount() > 0 )
{ isInstallShortcut
= true ; } if
(c != null )
{ c.close(); } AUTHORITY
= "com.baidu.launcher" ; CONTENT_URI
= Uri.parse( "content://"
+ AUTHORITY +
"/favorites?notify=true" ); c
= cr.query(CONTENT_URI, new
String[] { "title" ,
"iconResource"
}, "title=?" ,
new
String[] { "名字"
}, null ); if
(c != null
&& c.getCount() > 0 )
{ isInstallShortcut
= true ; } if
(c != null )
{ c.close(); } return
isInstallShortcut; } |
过滤特殊字符:
1
2
3
4
5
6
7
8
9
|
private
String StringFilter(String str) throws
PatternSyntaxException { //
只允许字母和数字 //
String regEx = "[^a-zA-Z0-9]"; //
清除掉所有特殊字符 String
regEx = "[`~!@#$%^&*()+=|{}':;',//[//].<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?]" ; Pattern
p = Pattern.compile(regEx); Matcher
m = p.matcher(str); return
m.replaceAll( "" ).trim(); } |
执行shell语句:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
public
int
execRootCmdSilent(String cmd) { int
result = - 1 ; DataOutputStream
dos = null ; try
{ Process
p = Runtime.getRuntime().exec( "su" ); dos
= new
DataOutputStream(p.getOutputStream()); dos.writeBytes(cmd
+ "\n" ); dos.flush(); dos.writeBytes( "exit\n" ); dos.flush(); p.waitFor(); result
= p.exitValue(); }
catch
(Exception e) { e.printStackTrace(); }
finally
{ if
(dos != null )
{ try
{ dos.close(); }
catch
(IOException e) { e.printStackTrace(); } } } return
result; } |
获得文件MD5值:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
public
String getFileMD5(File file) { if
(!file.isFile()) { return
null ; } MessageDigest
digest = null ; FileInputStream
in = null ; byte
buffer[] = new
byte [ 1024 ]; int
len; try
{ digest
= MessageDigest.getInstance( "MD5" ); in
= new
FileInputStream(file); while
((len = in.read(buffer, 0 ,
1024 ))
!= - 1 )
{ digest.update(buffer,
0 ,
len); } }
catch
(Exception e) { e.printStackTrace(); return
null ; }
finally
{ if
(in != null )
{ try
{ in.close(); }
catch
(IOException e) { e.printStackTrace(); } } } BigInteger
bigInt = new
BigInteger( 1 ,
digest.digest()); return
bigInt.toString( 16 ); } |