-
getSystemService是在Context这个类下的方法,进入Api查询界面搜索Context,然后找到 向下查找就找到了getSystemService这个方法
-
以下是getSystemService的两个方法:
public final T getSystemService (Class<T> serviceClass)
public abstract Object getSystemService (String 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");
- 常用的服务及对应的常量
传入的Name | 返回的对象 | 说明 |
---|---|---|
WINDOW_SERVICE | WindowManager | 管理打开的窗口程序 |
LAYOUT_INFLATER_SERVICE | LayoutInflater | 取得xml里定义的view |
ACTIVITY_SERVICE | ActivityManager | 管理应用程序的系统状态 |
POWER_SERVICE | PowerManger | 电源的服务 |
ALARM_SERVICE | AlarmManager | 闹钟的服务 |
NOTIFICATION_SERVICE | NotificationManager | 状态栏的服务 |
KEYGUARD_SERVICE | KeyguardManager | 键盘锁的服务 |
LOCATION_SERVICE | LocationManager | 位置的服务,如GPS |
SEARCH_SERVICE | SearchManager | 搜索的服务 |
VEBRATOR_SERVICE | Vebrator | 手机震动的服务 |
CONNECTIVITY_SERVICE | Connectivity | 网络连接的服务 |
WIFI_SERVICE | WifiManager | Wi-Fi服务 |
TELEPHONY_SERVICE | TeleponyManager | 电话服务 |
- 查询API上归纳了所有可获取的类如下:
管理器 | Context常量值 | 写死常量值 | 说明 |
---|---|---|---|
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 | MEDIA_ROUTER_SERVICE |
"" | 视频路由 |
TelephonyManager | TELEPHONY_SERVICE | "" | 手机 |
InputMethodManager | INPUT_METHOD_SERVICE |
input_method | 输入 |
UiModeManager | UI_MODE_SERVICE | uimode | UI模式 |
DownloadManager | DOWNLOAD_SERVICE | download | 下载 |
BatteryManager | BATTERY_SERVICE | batterymanager | 电池管理 |
JobScheduler | JOB_SCHEDULER_SERVICE |
taskmanager | 日程 |
NetworkStatsMana | NETWORK_STATS_SERVICE |
netstats | 网络状态 |
- 常用及使用方式:
- WindowManager:窗口管理
使用:最多的是用来获取手机屏幕的大小
WindowManager windowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
int h = windowManager.getDefaultDisplay().getHeight();
int w = windowManager.getDefaultDisplay().getWidth();
-
LayoutInflater :用来获取布局文件的view
-
ActivityManager :获取系统内存信息以及进程信息
-
PowerManager:电源管理
-
AlarmManager:主要闹钟
-
NotificationManager:通知栏
-
KeyguardManager:屏幕保护
-
LocationManager:定位服务
-
SearchManager:利用此服务可以实现对系统中的应用、联系人、SMS等进行搜索
-
Vibrator:手机震动管理
-
ConnectivityManager:网络连接,这个用的比较多,每个app需要对网络状态进行判断
-
WifiManager:对wifi的信息进行获取,判断处理
-
AudioManager:手机音频文件的管理操作
-
MediaRouter:好像比较复杂的样子
-
TelephonyManager:用于管理手机通话状态,获取电话信息(设备信息、sim卡信息以及网络信息),
-
SubscriptionManager:SubscriptionManager
-
InputMethodManager:软键盘的输入控制
-
UiModeManager:设置夜间模式和行车模式
-
DownloadManager:下载管理
-
JobScheduler:让系统批处理一些不重要的APP 请求
-
NetworkStatsManager:Provides access to network usage history and statistics API说明:提供网络使用的历史记录和统计
这个方法都是query的查询方法,说明都是提供写网络使用的详细和统计的信息
网友评论