版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【移动应用开发技术】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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 智能仪器仪表课程设计
- 手术室出科实习小结范文
- 2024年度网红直播平台店铺使用权独家转让合作协议下载3篇
- 春节放假的通知集锦5篇资料
- 2025年山东济宁邹城市太平镇城乡公益性岗位招聘187人历年管理单位笔试遴选500模拟题附带答案详解
- 2025年山东济宁市工业和信息化局所属事业单位急需紧缺人才引进2人管理单位笔试遴选500模拟题附带答案详解
- 2025年山东济南市槐荫区幼儿园招聘工作人员273人管理单位笔试遴选500模拟题附带答案详解
- 很押韵很有气势的网络安全宣传标语
- 园长中班家长会发言稿
- 师德标兵主要事迹(5篇)
- 2023年中证数据招聘笔试真题
- 木桶效应-课件
- 《中国制造业的崛起》课件
- 中小学学校安全管理制度汇编
- (DB45T 2522-2022)《桥梁缆索吊装系统技术规程》
- 广州沪教牛津版七年级英语上册期中试卷(含答案)
- 道法全册知识点梳理-2024-2025学年统编版道德与法治七年级上册
- 2025版国家开放大学法律事务专科《民法学(1)》期末考试总题库
- 四川省成都市2023-2024学年高二上学期期末考试+地理 含答案
- 人教版数学六年级上册期末考试试卷
- 2024年时事政治试题库附答案(综合题)
评论
0/150
提交评论