【移動應用開發(fā)技術(shù)】Android中怎么實現(xiàn)一個手機管理工具類_第1頁
【移動應用開發(fā)技術(shù)】Android中怎么實現(xiàn)一個手機管理工具類_第2頁
【移動應用開發(fā)技術(shù)】Android中怎么實現(xiàn)一個手機管理工具類_第3頁
【移動應用開發(fā)技術(shù)】Android中怎么實現(xiàn)一個手機管理工具類_第4頁
【移動應用開發(fā)技術(shù)】Android中怎么實現(xiàn)一個手機管理工具類_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

【移動應用開發(fā)技術(shù)】Android中怎么實現(xiàn)一個手機管理工具類

本篇文章給大家分享的是有關(guān)Android中怎么實現(xiàn)一個手機管理工具類,在下覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著在下一起來看看吧。工具類內(nèi)的方法:getInstance

:單例對象getSDKVersionNumber

:獲取手機系統(tǒng)版本號getPhoneModel

:獲取手機型號getPhoneWidth

:獲取手機寬度getPhoneHeight

:獲取手機高度getPhoneImei

:獲取手機imei串號,GSM手機的IMEI和CDMA手機的MEIDgetPhoneSim

:獲取手機sim卡號getPhoneNum

:獲取手機號isSDCardMount

:判斷sd卡是否掛載getSDFreeSize

:獲取sd卡剩余空間的大小getSDAllSize

:獲取sd卡空間的總大小isTablet

:判斷是否是平板isApkInstalled

:判斷一個apk是否安裝getAppPermissions

:獲取應用權(quán)限名稱列表getInstalledApp

:獲取手機內(nèi)安裝的應用getUserInstalledApp

:獲取手機安裝非系統(tǒng)應用getInstalledAppInfo

:獲取安裝應用的信息startAppPkg

:打開指定包名的應用unInstallApk

:卸載指定包名的應用callPhone

:直接呼叫指定的號碼toCallPhoneActivity

:跳轉(zhuǎn)至撥號界面sendMessage

:直接調(diào)用短信API發(fā)送信息(設置監(jiān)聽發(fā)送和接收狀態(tài))toSendMessageActivity:跳轉(zhuǎn)至發(fā)送短信界面(自動設置接收方的號碼)AppPhoneMgr類的代碼

package

com.example.phone;

import

android.content.Context;

import

android.content.Intent;

import

android.content.pm.ApplicationInfo;

import

android.content.pm.PackageInfo;

import

android.content.pm.PackageManager;

import

android.content.pm.PackageManager.NameNotFoundException;

import

android.content.res.Configuration;

import

.Uri;

import

android.os.Environment;

import

android.os.StatFs;

import

vider.Contacts;

import

android.telephony.TelephonyManager;

import

android.view.WindowManager;

import

java.io.File;

import

java.util.ArrayList;

import

java.util.HashMap;

import

java.util.List;

import

java.util.Map;

import

java.util.regex.Matcher;

import

java.util.regex.Pattern;

/**

*

主要功能:手機管理工具類

*/

public

class

AppPhoneMgr

{

private

static

AppPhoneMgr

phoneUtil;

public

static

AppPhoneMgr

getInstance()

{

if

(phoneUtil

==

null)

{

synchronized

(AppPhoneMgr.class)

{

if

(phoneUtil

==

null)

{

phoneUtil

=

new

AppPhoneMgr();

}

}

}

return

phoneUtil;

}

/**

*

獲取手機系統(tǒng)版本號

*

*

@return

*/

public

Integer

getSDKVersionNumber()

{

Integer

sdkVersion;

try

{

sdkVersion

=

Integer.valueOf(android.os.Build.VERSION.SDK_INT);

}

catch

(NumberFormatException

e)

{

e.printStackTrace();

sdkVersion

=

Integer.valueOf(0);

}

return

sdkVersion;

}

/**

*

獲取手機型號

*/

public

String

getPhoneModel()

{

return

android.os.Build.MODEL;

}

/**

*

獲取手機寬度

*/

@SuppressWarnings("deprecation")

public

int

getPhoneWidth(Context

context)

{

WindowManager

wm

=

(WindowManager)

context

.getSystemService(Context.WINDOW_SERVICE);

return

wm.getDefaultDisplay().getWidth();

}

/**

*

獲取手機高度

*

*

@param

context

*/

@SuppressWarnings("deprecation")

public

int

getPhoneHeight(Context

context)

{

WindowManager

wm

=

(WindowManager)

context

.getSystemService(Context.WINDOW_SERVICE);

return

wm.getDefaultDisplay().getHeight();

}

/**

*

獲取手機imei串號

,GSM手機的

IMEI

CDMA手機的

MEID.

*

*

@param

context

*/

public

String

getPhoneImei(Context

context)

{

TelephonyManager

tm

=

(TelephonyManager)

context

.getSystemService(Context.TELEPHONY_SERVICE);

if

(tm

==

null)

return

null;

return

tm.getDeviceId();

}

/**

*

獲取手機sim卡號

*

*

@param

context

*/

public

String

getPhoneSim(Context

context)

{

TelephonyManager

tm

=

(TelephonyManager)

context

.getSystemService(Context.TELEPHONY_SERVICE);

if

(tm

==

null)

return

null;

return

tm.getSubscriberId();

}

/**

*

獲取手機號

*

*

@param

context

*/

public

String

getPhoneNum(Context

context)

{

TelephonyManager

tm

=

(TelephonyManager)

context

.getSystemService(Context.TELEPHONY_SERVICE);

if

(tm

==

null)

return

null;

return

tm.getLine1Number();

}

/**

*

判斷sd卡是否掛載

*/

public

boolean

isSDCardMount()

{

if

(Environment.getExternalStorageState().equals(

Environment.MEDIA_MOUNTED))

{

return

true;

}

else

{

return

false;

}

}

/**

*

獲取sd卡剩余空間的大小

*/

@SuppressWarnings("deprecation")

public

long

getSDFreeSize()

{

File

path

=

Environment.getExternalStorageDirectory();

//

取得SD卡文件路徑

StatFs

sf

=

new

StatFs(path.getPath());

long

blockSize

=

sf.getBlockSize();

//

獲取單個數(shù)據(jù)塊的大小(Byte)

long

freeBlocks

=

sf.getAvailableBlocks();//

空閑的數(shù)據(jù)塊的數(shù)量

//

返回SD卡空閑大小

return

(freeBlocks

*

blockSize)

/

1024

/

1024;

//

單位MB

}

/**

*

獲取sd卡空間的總大小

*/

@SuppressWarnings("deprecation")

public

long

getSDAllSize()

{

File

path

=

Environment.getExternalStorageDirectory();

//

取得SD卡文件路徑

StatFs

sf

=

new

StatFs(path.getPath());

long

blockSize

=

sf.getBlockSize();

//

獲取單個數(shù)據(jù)塊的大小(Byte)

long

allBlocks

=

sf.getBlockCount();

//

獲取所有數(shù)據(jù)塊數(shù)

//

返回SD卡大小

return

(allBlocks

*

blockSize)

/

1024

/

1024;

//

單位MB

}

/**

*

判斷是否是平板

*/

public

boolean

isTablet(Context

context)

{

return

(context.getResources().getConfiguration().screenLayout

&

Configuration.SCREENLAYOUT_SIZE_MASK)

>=

Configuration.SCREENLAYOUT_SIZE_LARGE;

}

/**

*

判斷一個apk是否安裝

*

*

@param

context

*

@param

packageName

*/

public

boolean

isApkInstalled(Context

context,

String

packageName)

{

PackageManager

pm

=

context.getPackageManager();

try

{

pm.getPackageInfo(packageName,

0);

}

catch

(NameNotFoundException

e)

{

return

false;

}

return

true;

}

/**

*

撥打電話

*

*

@param

context

*

@param

phoneNum

*/

public

void

call(Context

context,

String

phoneNum)

throws

Exception

{

if

(phoneNum

!=

null

&&

!phoneNum.equals(""))

{

Uri

uri

=

Uri.parse("tel:"

+

phoneNum);

Intent

intent

=

new

Intent(Intent.ACTION_DIAL,

uri);

context.startActivity(intent);

}

}

/**

*

跳轉(zhuǎn)到聯(lián)系人界面

*/

public

void

toChooseContactsList(Context

context)

{

Intent

intent

=

new

Intent();

intent.setAction(Intent.ACTION_VIEW);

intent.setData(Contacts.People.CONTENT_URI);

context.startActivity(intent);

}

/**

*

發(fā)送短信界面

,現(xiàn)在好像不行了

*/

public

void

toSendMessageActivity(Context

context,

String

number)

{

try

{

Uri

uri

=

Uri.parse("smsto:"

+

number);

Intent

intent

=

new

Intent(Intent.ACTION_SENDTO,

uri);

context.startActivity(intent);

}

catch

(Exception

e)

{

e.printStackTrace();

}

}

/**

*

打開網(wǎng)頁

*/

public

void

openWeb(Context

context,

String

url)

{

try

{

Uri

uri

=

Uri.parse(url);

context.startActivity(new

Intent(Intent.ACTION_VIEW,

uri));

}

catch

(Exception

e)

{

e.printStackTrace();

}

}

/**

*

獲取應用權(quán)限

名稱列表

*/

public

String[]

getAppPermissions(Context

context)

throws

NameNotFoundException

{

PackageManager

pm

=

context.getPackageManager();

PackageInfo

packageInfo

=

pm.getPackageInfo(context.getPackageName(),

PackageManager.GET_PERMISSIONS);

return

getAppPermissions(packageInfo);

}

public

String[]

getAppPermissions(PackageInfo

packageInfo)

throws

NameNotFoundException

{

return

packageInfo.requestedPermissions;

}

/**

*

獲取手機內(nèi)安裝的應用

*/

public

List<PackageInfo>

getInstalledApp(Context

context)

{

PackageManager

pm

=

context.getPackageManager();

return

pm.getInstalledPackages(0);

}

/**

*

獲取手機安裝非系統(tǒng)應用

*/

@SuppressWarnings("static-access")

public

List<PackageInfo>

getUserInstalledApp(Context

context)

{

List<PackageInfo>

infos

=

getInstalledApp(context);

List<PackageInfo>

apps

=

new

ArrayList<PackageInfo>();

for

(PackageInfo

info

:

infos)

{

if

((info.applicationInfo.flags

&

info.applicationInfo.FLAG_SYSTEM)

<=

0)

{

apps.add(info);

}

}

infos.clear();

infos

=

null;

return

apps;

}

/**

*

獲取安裝應用的信息

*/

public

Map<String,

Object>

getInstalledAppInfo(Context

context,

PackageInfo

info)

{

Map<String,

Object>

appInfos

=

new

HashMap<String,

Object>();

PackageManager

pm

=

context.getPackageManager();

ApplicationInfo

aif

=

info.applicationInfo;

appInfos.put("icon",

pm.getApplicationIcon(aif));

appInfos.put("lable",

pm.getApplicationLabel(aif));

appInfos.put("packageName",

aif.packageName);

return

appInfos;

}

/**

*

打開指定包名的應用

*/

public

void

startAppPkg(Context

context,

String

pkg)

{

Intent

startIntent

=

context.getPackageManager()

.getLaunchIntentForPackage(pkg);

startIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

context.startActivity(startIntent);

}

/**

*

卸載指定包名的應用

*/

public

void

unInstallApk(Context

context,

String

packageName)

{

Uri

uri

=

Uri.parse("package:"

+

packageName);

Intent

intent

=

new

Intent(Intent.ACTION_DELETE);

intent.setData(uri);

context.startActivity(intent);

}

/**

*

手機號判斷

*/

public

static

boolean

isMobileNO(String

mobile)

{

Pattern

p

=

Pattern

.compile("^((145|147)|(15[^4])|(17[0-9])|((13|18)[0-9]))\\d{8}$");

Matcher

m

=

p.matcher(mobile);

return

m.matches();

}

}Activity的調(diào)用示例代碼:package

com.example.phone;

import

android.app.Activity;

import

android.content.pm.PackageInfo;

import

android.content.pm.PackageManager;

import

android.os.Bundle;

import

android.view.View;

import

android.widget.Toast;

import

java.util.Arrays;

import

java.util.List;

import

java.util.Map;

/**

*

手機管理工具類的使用示例

*/

public

class

MyActivity

extends

Activity

{

@Override

public

void

onCreate(Bundle

savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

}

/**

*

獲取手機系統(tǒng)版本號

*

*

@return

*/

public

void

getSDKVersionNumber(View

view)

{

Integer

sdkVersionNumber

=

AppPhoneMgr.getInstance().getSDKVersionNumber();

showToast("

\n

獲取手機系統(tǒng)版本號:"

+

sdkVersionNumber);

}

/**

*

獲取手機型號

*/

public

void

getPhoneModel(View

view)

{

String

phoneModel

=

AppPhoneMgr.getInstance().getPhoneModel();

showToast("

\n

獲取手機型號:"

+

phoneModel);

}

/**

*

獲取手機寬度

*/

public

void

getPhoneWidth(View

view)

{

int

phoneWidth

=

AppPhoneMgr.getInstance().getPhoneWidth(this);

showToast("

\n

獲取手機寬度:"

+

phoneWidth);

}

/**

*

獲取手機高度

*/

public

void

getPhoneHeight(View

view)

{

int

phoneHeight

=

AppPhoneMgr.getInstance().getPhoneHeight(this);

showToast("

\n

獲取手機寬度:"

+

phoneHeight);

}

/**

*

獲取手機imei串號

,GSM手機的

IMEI

CDMA手機的

MEID.

*

需要權(quán)限:android.permission.READ_PHONE_STATE.否則會報錯

*/

public

void

getPhoneImei(View

view)

{

String

phoneImei

=

AppPhoneMgr.getInstance().getPhoneImei(this);

showToast("

\n

獲取手機imei串號:"

+

phoneImei);

}

/**

*

獲取手機sim卡號

*/

public

void

getPhoneSim(View

view)

{

String

phoneSim

=

AppPhoneMgr.getInstance().getPhoneSim(this);

showToast("

\n

獲取手機sim卡號:"

+

phoneSim);

}

/**

*

獲取手機號,不行??

*/

public

void

getPhoneNum(View

view)

{

String

phoneSim

=

AppPhoneMgr.getInstance().getPhoneNum(this);

showToast("

\n

獲取手機號:"

+

phoneSim);

}

/**

*

判斷sd卡是否掛載

*/

public

void

isSDCardMount(View

view)

{

boolean

isSDCardMount

=

AppPhoneMgr.getInstance().isSDCardMount();

showToast("

\n

判斷sd卡掛載:"

+

isSDCardMount);

}

/**

*

獲取sd卡剩余空間的大小

*/

public

void

getSDFreeSize(View

view)

{

long

getSDFreeSize

=

AppPhoneMgr.getInstance().getSDFreeSize();

showToast("

\n

獲取sd卡剩余空間的大小:"

+

getSDFreeSize);

}

/**

*

獲取sd卡空間的總大小

*/

public

void

getSDAllSize(View

view)

{

long

getSDAllSize

=

AppPhoneMgr.getInstance().getSDAllSize();

showToast("

\n

獲取sd卡剩余空間的大小:"

+

getSDAllSize);

}

/**

*

判斷是否是平板

*/

public

void

isTablet(View

view)

{

boolean

isTablet

=

AppPhoneMgr.getInstance().isTablet(this);

showToast("

\n

判斷是否是平板:"

+

isTablet);

}

/**

*

判斷一個apk是否安裝

*/

public

void

isApkInstalled(View

view)

{

boolean

isApkInstalled

=

AppPhoneMgr.getInstance().isApkInstalled(this,

"com.wanputech.abp");

showToast("

\n

判斷一個apk是否安裝:"

+

isApkInstalled);

}

/**

*

撥打電話

*/

public

void

call(View

view)

{

String

phone

=

;

try

{

AppPhoneMgr.getInstance().call(this,

phone);

}

catch

(Exception

e)

{

showToast("

\n

撥打電話失敗:"

+

e.getMessage());

}

showToast("

\n

撥打電話:"

+

phone);

}

/**

*

跳轉(zhuǎn)到聯(lián)系人界面

*/

public

void

toChooseContactsList(View

view)

{

AppPhoneMgr.getInstance().toChooseContactsList(this);

}

/**

*

發(fā)送短信界面

*/

public

void

toSendMessageActivity(View

view)

{

AppPhoneMgr.getInstance().toSendMessageActivity(this,

"12315");

}

/**

*

打開網(wǎng)頁

*/

public

void

openWeb(View

view)

{

String

url

=

"/";

//百度

AppPhoneMgr.getInstance().openWeb(this,

url);

}

/**

*

獲取應用權(quán)限

名稱列表

*/

public

void

getAppPermissions(View

view)

{

try

{

String[]

getAppPermissions

=

AppPhoneMgr.getInstance().getAppPermissions(this);

showToast("

\n

獲取應用權(quán)限

名稱列表:"

+

getAppPermissions);

}

catch

(Exception

e)

{

showToast("

\n

獲取應用權(quán)限

名稱列表:"

+

e.getMessage());

}

}

/**

*

程序請求了的權(quán)限

*/

public

void

getAppPermissions2(View

view)

{

try

{

String[]

getAppPermissions

=

AppPhoneMgr.getInstance().getAppPermissions(getPackageManager().getPackageInfo("com.example.phone",

1));

showToast("

\n

程序請求了的權(quán)限:"

+

Arrays.asList(getAppPermissions));

}

catch

(Exception

e)

{

showToast("

\n

程序請求了的權(quán)限:"

+

e.getMessage());

}

}

/**

*

獲取手機內(nèi)安裝的應用

*/

public

void

getInstalledApp(View

view)

{

List<PackageInfo>

installedApp

=

AppPhoneMgr.getInstance().getInstalledApp(this);

for

(int

i

=

0;

i

<

installedApp.size();

i++)

{

showToast("

\n

獲取手機內(nèi)安裝的應用:"

+

installedApp.get(i));

}

}

/**

*

獲取手機安裝非系統(tǒng)應用

*/

public

void

getUserInstalledApp(View

view)

{

List<PackageInfo>

installedApp

=

AppPhoneMgr.getInstance().getUserInstalledApp(this);

for

(int

i

=

0;

i

<

installedApp.size();

i++)

{

showT

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論