您的位置:首页 > 移动开发 > Android开发

Android中的getSystemservice,很全

2017-10-10 18:00 441 查看
记录下这个getSystemService 的使用感觉这个API的用处挺大,很多东西都要用到它。

对于API的查询还不是特别会用,顺便借这个机会学习一下

getSystemService是在Context这个类下的方法,进入Api查询界面搜索Context,然后找到 向下查找就找到了getSystemService这个方法

以下是getSystemService的两个方法:


public final T getSystemService (Class<T>
serviceClass)

Added in API level 23

Return the handle to a system-level service by class.


public abstract Object getSystemService (String name)

Added in API level 1

Return the handle to a system-level service by name. 

一般我们用的是第二个方法,写法有两种一个是用的Context里定义的字符串常量,当然意思是一样的,由于返回的对象是Object所以要对放回的值进行转型。

举个获取wifi管理器对象的例子:

WifiManager wifiManager = (WifiManager)getSystemService(Context.WIFI_SERVICE);

WifiManager wifiManager = (WifiManager)getSystemService("wifi");

例子二:

WindowManager windowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);

WindowManager windowManager = (WindowManager) getSystemService("window");

查询API上归纳了所有可获取的类如下:

Currently available classes are: 

WindowManager
,
WINDOW_SERVICE
 ("window")
:窗口管理器

LayoutInflater
LAYOUT_INFLATER_SERVICE
 ("layout_inflater"):布局

ActivityManager
ACTIVITY_SERVICE
 ("activity")

PowerManager
POWER_SERVICE
 ("power"):电源管理

AlarmManager
ALARM_SERVICE
 ("alarm"):闹钟管理

NotificationManager
,
NOTIFICATION_SERVICE
 ("notification"):通知栏管理

KeyguardManager
KEYGUARD_SERVICE
 ("keyguard")

LocationManager
LOCATION_SERVICE
 ("location"):位置管理

SearchManager
SEARCH_SERVICE
 ("search")

Vibrator
VIBRATOR_SERVICE
 ("vibrator")
  手机震动

ConnectivityManager
CONNECTIVITY_SERVICE
 ("connection")

WifiManager
WIFI_SERVICE
 ("wifi"):wifi管理

AudioManager
WIFI_P2P_SERVICE
 ("wifip2p")

MediaRouter
,Context.MEDIA_ROUTER_SERVICE这三个没有名称的方法

TelephonyManager
, Context.TELEPHONY_SERVICE

SubscriptionManager
,
这个比较特殊You do not instantiate this class directly; instead, you retrieve a reference to an instance through 
from(Context)
.

应该这么写吧:SubscriptionManager ubscriptionManager = SubscriptionManager.from(this);

InputMethodManager
INPUT_METHOD_SERVICE
 ("input_method")

UiModeManager
UI_MODE_SERVICE
 ("uimode")

DownloadManager
DOWNLOAD_SERVICE
 ("download")

BatteryManager
BATTERY_SERVICE
 ("batterymanager"):电池管理

JobScheduler
,
JOB_SCHEDULER_SERVICE
 ("taskmanager")

NetworkStatsManager
.
NETWORK_STATS_SERVICE
 ("netstats")

挺多的好多基本不认识,所以学会查看API是最基本的东西,这样才能方便学习。

这个个写个总结好像有点没完没了了。

贴上网上大神的总结吧

WindowManager 

窗口管理

这个大家应用最多的应该都是用来获取手机屏幕的大小吧

WindowManager windowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);

int h = windowManager.getDefaultDisplay().getHeight();

int h = windowManager.getDefaultDisplay().getWidth();

LayoutInflater 
 

用来获取布局文件的view  

看介绍这个好像用到的概率比较小
http://www.cnblogs.com/top5/archive/2012/05/04/2482328.html
ActivityManager  

获取系统内存信息以及进程信息
http://www.2cto.com/kf/201111/111395.html
PowerManager

电源管理
http://blog.csdn.net/xieqibao/article/details/6562256
AlarmManager

主要闹钟吧
http://blog.csdn.net/wangxingwu_314/article/details/8060312
NotificationManager

这个通知栏的应该会用的比较多,基本的app都要用到吧
http://www.cnblogs.com/stay/articles/1898963.html
KeyguardManager

屏幕保护
http://blog.csdn.net/eyu8874521/article/details/8477724
LocationManager

定位服务
http://blog.csdn.net/liuhe688/article/details/6573459
SearchManager

利用此服务可以实现对系统中的应用、联系人、SMS等进行搜索
http://willsunforjava.iteye.com/blog/1674817
Vibrator

手机震动管理
http://www.android-study.com/jichuzhishi/414.html
ConnectivityManager

网络连接,这个应该用的比较多吧,那个app不需要网络,需要就要对网络状态进行判断
http://blog.csdn.net/chenzheng_java/article/details/6387116/
WifiManager

对wifi的信息进行获取,判断处理
http://blog.csdn.net/hknock/article/details/7871866
AudioManager 

手机音频文件的管理操作
http://blog.csdn.net/x605940745/article/details/16940097
MediaRouter

好像比较复杂的样子
http://blog.csdn.net/lilian0118/article/details/22940943
TelephonyManager

用于管理手机通话状态,获取电话信息(设备信息、sim卡信息以及网络信息),
http://www.2cto.com/kf/201410/347844.html
SubscriptionManager
http://blog.163.com/machao_163job/blog/static/2087753220121020101316838/
InputMethodManager

软键盘的输入控制
http://www.cnblogs.com/weixing/p/3300908.html
UiModeManager

设置夜间模式和行车模式
http://blog.sina.com.cn/s/blog_8417aea80100v056.html
DownloadManager

下载管理
http://blog.csdn.net/sir_zeng/article/details/8983430
JobScheduler

这个东西可以让系统批处理一些不重要的APP 请求
http://blog.csdn.net/cuiran/article/details/42805057
NetworkStatsManager

这个网上找不到说明文章,说明大家应该都没有吧

Provides access to network usage history and statistics API说明:提供网络使用的历史记录和统计

这个方法都是query的查询方法,说明都是提供写网络使用的详细和统计的信息

总结完毕了,只能说大概了解了一遍基本功能。以后查找的时候能有些印象




0
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: