后台Service在系统启动时被SystemService开启
* MountService:监听是否有SD卡安装及移除
* ClipboardService:提供剪切板功能
* PackageManagerService:提供软件包的安装、移除和查看
* 电量、网络连接状态等等
getSystemService()
* Activity的一个方法
* 传入NAME -> Object -> 服务对象
LAYOUT_INFLATER_SERVICE 的作用和 findViewById() 差不多。
使用系统提供的网络连接服务 CONNECTIVITY_SERVICE: 1. 定义一个Button,添加点击事件“doClick”; 2. 编写一个判断网络连接的类 isNetworkConnected(Context context),之所以要使用上下文作为参数,是因为使用系统服务要用到 context:
1 public boolean isNetworkConnected(Context context) { 2 ConnectivityManager mConnectivityManager = (ConnectivityManager)context.getSystemService(CONNECTIVITY_SERVICE); 3 NetworkInfo mNetworkInfom = mConnectivityManager.getActiveNetworkInfo(); 4 if (mNetworkInfom != null) return true; 5 else return false; 6 } 7 3. 如图,编写点击事件: 8 public void doClick(View view){ 9 switch (view.getId()){ 10 case R.id.network: 11 if(isNetworkConnected(this)){ 12 Toast.makeText(this, "网络已经打开", Toast.LENGTH_SHORT).show(); 13 } 14 else{ 15 Toast.makeText(this, "网络未连接", Toast.LENGTH_SHORT).show(); 16 } 17 break; 18 } 19 } 20 4. 在配置文档中添加权限: 21 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
安卓系统默认对于一些比较危险的操作或者高权限的操作都要求必须具有权限才能执行,例如发送短信、读取通讯录、打开/关闭WiFi等等。 例如这节课的示例是要查看网络状态,就需要添加相应权限: <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses> 添加这个权限后,用户在安装这个应用的时候,安装界面就会提示该应用需要获取网络状态。 ------------------------- 如图,是获取 WIFI 状态,然后做开启或关闭 WIFI 的操作。 同样要先获取权限: <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> 读取WiFi状态 <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/> 改变WiFi状态
getSystemService 是 Android 很重要的一个 API , 它是 Activity 的一个方法,根据传入的 NAME 来获取对应的 Object,然后转换成相应的服务对象( XxxManager )。
迄今所学,无不如此:
获取系统的网络连接服务:
ConnectivityManager mConnectivityManager = (ConnectivityManager)context.getSystemService(CONNECTIVITY_SERVICE);
获取系统的 WiFi 服务:
WifiManager wifimanager = (WifiManager) this.getSystemService(WIFI_SERVICE);
获取系统的 Auido(音响/声音)服务:
AudioManager mAudioManager = (AudioManager) this.getSystemService(AUDIO_SERVICE);
获取系统的 Activity 服务:
ActivityManager mActivityManager = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
别忘了添加权限:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.GET_TASKS"/>