版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【移动应用开发技术】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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026广东能源集团广州节能降碳有限公司招聘15人模拟试卷附答案详解【综合卷】
- 2026中国地质调查局局属单位公开招聘工作人员80名(第三批)模拟试卷含完整答案详解【历年真题】
- 2026广西北海市合浦县科学技术协会招录城镇公益性岗位人员1人考前冲刺试卷往年题考附答案详解
- 2026浙江杭州市保俶塔申花实验学校诚聘语文、数学、体育等学科教师(非事业)考前冲刺密卷附答案详解(培优)
- 2026福建厦门市医疗急救中心招聘非在编驾驶员3人考前冲刺密卷及参考答案详解【培优】
- 2026上海外国语大学国际教育学院招聘1人笔试题库含答案详解【A卷】
- 2026上海市同济口腔医院(同济大学附属口腔医院)人事部招聘1人笔试题库(突破训练)附答案详解
- 2026广东韶关仁化县高层次和急需紧缺人才招聘12人考前冲刺密卷附答案详解【B卷】
- 2026年武宁县教师选调【120人】考前冲刺试卷带答案详解(A卷)
- 信息化安全管理
- 2026年4月自考13000英语(专升本)试题
- 2026年档案职称中级高分题库附完整答案详解【网校专用】
- 监控中心监控画面巡查制度
- 2025版先天性甲状腺功能减退症诊治指南解读课件
- 2026年上海市静安区高三语文二模作文题目解析及范文:当你觉得对话失去意义
- 2026年北京市西城区初三一模语文试卷(含答案)
- 2026广岩国际投资有限责任公司招聘14人建设笔试模拟试题及答案解析
- 2026年基金从业资格证全真模拟模拟题及参考答案详解(模拟题)
- 叉车司机实操模拟考试附答案
- 循环经济工业园光储充一体化重卡超级充电站项目可行性研究报告模板-拿地立项申报
- 2025年消防继续教育试题及答案
评论
0/150
提交评论