zoukankan      html  css  js  c++  java
  • Android攻城狮安卓中常用的系统服务

    后台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"/>

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    
    
  • 相关阅读:
    WIN10系统如何取消右下角的通知菜单,通知图标
    1.1.6版本Druid连接MSSQLServer 2008 R2报错The query timeout value -1 is not valid. #2210
    第一次使用Android Studio时你应该知道的一切配置(三):gradle项目构建
    CentOS 7 Tomcat服务的安装与配置
    centos7中使用yum安装tomcat以及它的启动、停止、重启
    centos7更改为启动桌面或命令行模式
    gradle新建工程,多项目依赖,聚合工程
    Gradle构建多模块项目(转)
    3分钟搞定SpringBoot+Mybatis+druid多数据源和分布式事务
    Spring MVC+Mybatis 多数据源配置
  • 原文地址:https://www.cnblogs.com/my334420/p/6753812.html
Copyright © 2011-2022 走看看