Android開發中數據連接的開啟和關閉

来源:http://www.cnblogs.com/androidshouce/archive/2016/06/14/5582756.html
-Advertisement-
Play Games

Android開發的過程中,我想要通過代碼來實現數據連接的開啟和關閉,最初我將目標鎖定為ConnectivityManager類,但是在翻閱了Android官方API後並沒有找到相關的方法,如圖1。 圖1 但是據說Android的一些類的某些方法的API是非公開的,所以我又做瞭如下嘗試:獲得Conn ...


Android開發的過程中,我想要通過代碼來實現數據連接的開啟和關閉,最初我將目標鎖定為ConnectivityManager類,但是在翻閱了Android官方API後並沒有找到相關的方法,如圖1。

            

                    圖1

  但是據說Android的一些類的某些方法的API是非公開的,所以我又做瞭如下嘗試:獲得ConnectivityManager在載入時的Class對象,並查看了其中的方法;代碼如下(這是一個方法中的全部代碼):

複製代碼
 1         ConnectivityManager connectivityManager = null;
 2         Class connectivityManagerClz = null;
 3         try {
 4             connectivityManager = (ConnectivityManager) cxt
 5                     .getSystemService(Context.CONNECTIVITY_SERVICE);
 6             connectivityManagerClz = connectivityManager.getClass();
 7             Method[] methods = connectivityManagerClz.getMethods();
 8             for(Method method : methods){
 9                 Log.i("Android數據連接管理",method.toGenericString());
10             }
11             Method method = connectivityManagerClz.getMethod(
12                     "setMobileDataEnabled", new Class[] { boolean.class });
13             method.invoke(connectivityManager, state);
14         } catch (Exception e) {
15             e.printStackTrace();
16         }
複製代碼


  通過代碼的第4-6行:我獲取到了ConnectivityManager的Class對象引用;

  通過代碼的第7行:我獲得了ConnectivityManager類的所有方法(包括公開的和未公開的);

  通過代碼的第8-10行:我將ConnectivityManager的方法的信息列印到了LogCat視窗,其中的片段如下圖,可以看到,圖中第一和第三個方法是圖1中沒有的;很明顯第一個方法是設置數據連接的,通過boolean型參數設置開啟與關閉;至此處理問題的方法找到了。由於該方法未被公開,通過實例化普通方法調用(實例化、靜態調用)行不通,所以我這兒使用java的反射機制進行調用

  通過代碼的第11-12行:我獲得了第一個方法setMobileDataEnabled的Method對象,在第12行代碼中傳入setMobileDataEnabled方法所屬類的實例和他的boolean型參數,好了,到此能夠管理數據連接的方法setMobileDataEnabled已經可以被使用了

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • H5其實就是H4的一個增強版本,我們在利用H5進行網頁的構造會更簡便,標簽語義更簡潔明瞭。首先,我們要理解HTML4,它是HTML的標記+css2+JavaScript的一些基本應用,簡言之,就是API+語法;而H5無非就是在原先的基礎上面提供了一些新的功能。 1、H5的語義標簽 1):html 的 ...
  • ES6中提供了塊級作用域,分別是let和const,該隨筆分別介紹了它們 ...
  • 最近在學關係型資料庫相關,MySQL 和 Postgre,捎帶著學了 PHP,為了練手這幾天就忙著自己搭博客,項目部署在某雲上,該雲算是良心,給的空間自己搭博客用足夠了。本來想著每日一bo的,所以有的時候實在來不及就只能隔天更新了。以後儘量發點東西出來,等博客搭完寫一寫 SQL 資料庫基礎相關的分享 ...
  • ...
  • js斷點調試心得 雖然網上已經有多的數不清的調試教程了,但仍然沒有發現哪篇文章寫的通俗易懂,索性自己嘗試寫寫自己的一些使用習慣或者說是心得,希望對那些還不是很懂得使用斷點調試的孩子有一些幫助(大神請無視~)。 1.斷點調試是啥?難不難? 斷點調試其實並不是多麼複雜的一件事,簡單的理解無外呼就是打開瀏 ...
  • 在有全屏側滑的情況下,頁面上有個slider需要左右滑動的時候,經常在滑動slider的時候頁面也跟著滑動 解決辦法一:關閉當前頁面的全屏側滑,開啟系統側滑 self.fd_interactivePopDisabled = YES; //關閉全屏側滑 self.navigationControlle ...
  • 代碼: RootViewController.h RootViewController.m ...
  • IOS之網路數據下載和JSON解析 簡介 在本文中筆者將要給大家介紹IOS中如何利用URLConnection從網路上下載數據,如何解析下載下來的JSON數據格式,以及如何顯示數據和圖片的一部下載顯示 涉及到的知識點: 1.URLConnection非同步下載和封裝 2.JSON格式和JSON格式解析 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...