【移动应用开发技术】Android开发之系统管理工具类的示例分析_第1页
【移动应用开发技术】Android开发之系统管理工具类的示例分析_第2页
【移动应用开发技术】Android开发之系统管理工具类的示例分析_第3页
【移动应用开发技术】Android开发之系统管理工具类的示例分析_第4页
【移动应用开发技术】Android开发之系统管理工具类的示例分析_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

【移动应用开发技术】Android开发之系统管理工具类的示例分析

import

java.io.File;

import

android.annotation.SuppressLint;

import

android.annotation.TargetApi;

import

android.app.Activity;

import

android.app.ActivityManager;

import

android.content.ClipData;

import

android.content.Context;

import

android.database.Cursor;

import

.ConnectivityManager;

import

.NetworkInfo;

import

.Uri;

import

android.os.Build;

import

android.os.Environment;

import

android.os.StatFs;

import

vider.MediaStore;

import

android.text.TextUtils;

import

android.util.DisplayMetrics;

import

android.view.View;

import

android.view.inputmethod.InputMethodManager;

@SuppressWarnings("deprecation")

public

class

SystemUtil

{

public

static

final

int

NETTYPE_WIFI

=

0x01;

public

static

final

int

NETTYPE_CMWAP

=

0x02;

public

static

final

int

NETTYPE_CMNET

=

0x03;

/**

判断是否手机插入Sd卡

*/

public

static

boolean

sdCardUseable()

{

return

Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED);

}

/**

*

获取Sd卡的总容量

*

*

@return

*/

@SuppressLint("NewApi")

public

static

long

getSdCardTotalSize()

{

if(!sdCardUseable()){

return

0;

}

//

取得SD卡文件路径

File

path

=

Environment.getExternalStorageDirectory();

StatFs

sf

=

new

StatFs(path.getPath());

//

获取单个数据块的大小(Byte)

long

blockSize

=

sf.getBlockSizeLong();

//

获取所有数据块数

long

allBlocks

=

sf.getBlockCountLong();

//

返回SD卡大小

//

return

allBlocks

*

blockSize;

//单位Byte

//

return

(allBlocks

*

blockSize)/1024;

//单位KB

return

(allBlocks

*

blockSize)

/

1024

/

1024;

//

单位MB

}

/**

*

获取Sd卡的可用容量

*

*

@return

*/

@SuppressLint("NewApi")

public

static

long

getSdCardFreeSize()

{

if(!sdCardUseable()){

return

0;

}

//

取得SD卡文件路径

File

path

=

Environment.getExternalStorageDirectory();

StatFs

sf

=

new

StatFs(path.getPath());

//

获取单个数据块的大小(Byte)

long

blockSize

=

sf.getBlockSizeLong();

//

空闲的数据块的数量

long

freeBlocks

=

sf.getAvailableBlocksLong();

//

返回SD卡空闲大小

//

return

freeBlocks

*

blockSize;

//单位Byte

//

return

(freeBlocks

*

blockSize)/1024;

//单位KB

return

(freeBlocks

*

blockSize)

/

1024

/

1024;

//

单位MB

}

/**

*

判断是否联网或者漫游

*

*

@param

context

*

@return

boolean

*/

public

static

boolean

hasNet(Context

context)

{

//

获得ConnectivityManager的管理器

NetworkInfo

info

=

((ConnectivityManager)

context.getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo();

if

(info

==

null

||

!info.isConnected())

{

return

false;

}

if

(info.isRoaming())

{

//

漫游判断

return

true;

}

return

true;

}

/**

获得The

data

stream

for

the

file

*/

public

static

String

getUrlPath(Activity

context,

Uri

uri)

{

String[]

proj

=

{

MediaStore.Images.Media.DATA

};

Cursor

cursor

=

context.managedQuery(uri,

proj,

null,

null,

null);

int

column_index

=

cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);

cursor.moveToFirst();

return

cursor.getString(column_index);

}

/**

从传入Uri获得真实的path

*/

public

String

getRealPathFromURI(Activity

context,

Uri

contentUri)

{

//

can

post

image

String[]

proj

=

{

MediaStore.Images.Media.DATA

};

Cursor

cursor

=

context.managedQuery(contentUri,

proj,

//

Which

columns

//

to

return

null,

//

WHERE

clause;

which

rows

to

return

(all

rows)

null,

//

WHERE

clause

selection

arguments

(none)

null);

//

Order-by

clause

(ascending

by

name)

int

column_index

=

cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);

cursor.moveToFirst();

return

cursor.getString(column_index);

}

/**

获得屏幕的宽度

*/

public

static

int

getScreenWidth(Activity

context)

{

DisplayMetrics

outMetrics

=

new

DisplayMetrics();

context.getWindowManager().getDefaultDisplay().getMetrics(outMetrics);

return

outMetrics.widthPixels;

}

/**

获取屏幕的高度

*/

public

static

int

getScreenHeight(Activity

context)

{

DisplayMetrics

outMetrics

=

new

DisplayMetrics();

context.getWindowManager().getDefaultDisplay().getMetrics(outMetrics);

return

outMetrics.heightPixels;

}

/**

获得网络的类型

*/

public

static

int

getNetworkType(Context

context)

{

int

netType

=

0;

ConnectivityManager

connectivityManager

=

(ConnectivityManager)

context.getSystemService(Context.CONNECTIVITY_SERVICE);

NetworkInfo

networkInfo

=

connectivityManager.getActiveNetworkInfo();

if

(networkInfo

==

null)

{

//

判断是否联网

return

netType;

}

int

nType

=

networkInfo.getType();

//

获得

if

(nType

==

ConnectivityManager.TYPE_MOBILE)

{

String

extraInfo

=

networkInfo.getExtraInfo();

if

(!TextUtils.isEmpty(extraInfo))

{

if

(extraInfo.toLowerCase().equals("cmnet"))

{

netType

=

NETTYPE_CMNET;

}

else

{

netType

=

NETTYPE_CMWAP;

}

}

}

else

if

(nType

==

ConnectivityManager.TYPE_WIFI)

{

netType

=

NETTYPE_WIFI;

}

return

netType;

}

/**

隐藏软件盘

*/

public

static

void

hideSoftKeyborad(Activity

context)

{

final

View

v

=

context.getWindow().peekDecorView();

//

Retrieve

the

//

current

decor

//

view

if

(v

!=

null

&&

v.getWindowToken()

!=

null)

{

InputMethodManager

imm

=

(InputMethodManager)

context

//

获得输入方法的Manager

.getSystemService(Context.INPUT_METHOD_SERVICE);

imm.hideSoftInputFromWindow(v.getWindowToken(),

0);

}

}

/**

*

复制文本到剪切板

*

*

@param

context

*

@param

text

*/

@TargetApi(value

=

11)

@SuppressLint({

"NewApi",

"NewApi"

})

public

static

void

copyText(Context

context,

String

text)

{

if

(Build.VERSION.SDK_INT

>=

Build.VERSION_CODES.HONEYCOMB)

{

android.content.ClipboardManager

clipboardManager

=

(android.content.ClipboardManager)

context

.getSystemService(Context.CLIPBOARD_SERVICE);

ClipData

clipData

=

ClipData.newPlainText("label",

text);

clipboardManager.setPrimaryClip(clipData);

}

else

{

android.text.ClipboardManager

clipboardManager

=

(android.text.ClipboardManager)

context.getSystemService(Context.CLIPBOARD_SERVICE);

clipboardManager.setText(text);

}

}

/**

*

获取状态栏高度

*

*

@return

*/

public

static

int

getStatusBarHeight(Context

context)

{

Class<?>

c

=

null;

Object

obj

=

null;

java.lang.reflect.Field

field

=

null;

int

x

=

0;

int

statusBarHeight

=

0;

try

{

c

=

Class.forName("ernal.R$dimen");

obj

=

c.newInstance();

field

=

c.getField("status_bar_height");

x

=

Integer.parseInt(field.get(obj).toString());

statusBarHeight

=

context.getResources().getDimensionPixelSize(x);

return

statusBarHeight;

}

catch

(Exception

e)

{

e.printStackTrace();

}

return

statusBarHeight;

}

/**

*

获取当前进程

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论