Android 5.0(包含5.0以下版本) 獲取棧頂應用程式包名

来源:http://www.cnblogs.com/gholl/archive/2016/10/24/5993211.html
-Advertisement-
Play Games

/** * 獲取程式包名(本程式包名5.0版本上下都可獲取) * * @return */ public String getTaskPackname() { ActivityManager.RunningAppProcessInfo currentInfo = null; Field field  ...


  1. /**  
  2.      * 獲取程式包名(本程式包名5.0版本上下都可獲取)  
  3.      *   
  4.      * @return  
  5.      */  
  6.     public String getTaskPackname() {  
  7.         ActivityManager.RunningAppProcessInfo currentInfo = null;  
  8.         Field field = null;  
  9.         int START_TASK_TO_FRONT = 2;  
  10.         String currentApp = "CurrentNULL";  
  11.         if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {  
  12.             try {  
  13.                 field = ActivityManager.RunningAppProcessInfo.class.getDeclaredField("processState");  
  14.             } catch (Exception e) {  
  15.                 e.printStackTrace();  
  16.             }  
  17.             ActivityManager am = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);  
  18.             List<RunningAppProcessInfoappList = am.getRunningAppProcesses();  
  19.             for (ActivityManager.RunningAppProcessInfo app : appList) {  
  20.                 if (app.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {  
  21.                     Integer state = null;  
  22.                     try {  
  23.                         state = field.getInt(app);  
  24.                     } catch (Exception e) {  
  25.                         e.printStackTrace();  
  26.                     }  
  27.                     if (state != null && state == START_TASK_TO_FRONT) {  
  28.                         currentInfo = app;  
  29.                         break;  
  30.                     }  
  31.                 }  
  32.             }  
  33.             if (currentInfo != null) {  
  34.                 currentApp = currentInfo.processName;  
  35.             }  
  36.         } else {  
  37.             ActivityManager am = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);  
  38.             List<ActivityManager.RunningAppProcessInfotasks = am.getRunningAppProcesses();  
  39.             currentApp = tasks.get(0).processName;  
  40.         }  
  41.         Log.e("TAG", "Current App in foreground is: " + currentApp);  
  42.         return currentApp;  
  43.     }  

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

-Advertisement-
Play Games
更多相關文章
  • ng-init是給angular執行給定的表達式,初始化變數的值 這樣就初始化了myTest的值,ng-app沒有設值,要是設置的話,就要js啦,要不然就得報錯了 ...
  • 裝飾者模式筆記 在不改變原對象的基礎上, 通過對其進行包裝拓展(添加屬性或方法)使原有對象可以滿足用戶的更複雜要求。 需求不是一成不變的,需求會不斷改進,以增強用戶體驗 demo實例:對輸入框添加focus與blur事件 這個實例中,輸入框只有一兩個時,新添需求不覺得麻煩,當有許多輸入框都要新添需求 ...
  • directive裡面的幾個配置,上代碼就清晰了 這段代碼在瀏覽器上打開是這樣的, 看到嗎,directive裡面的template在標簽的裡面,是標簽的子元素 然後再看,在配置一個replace replace為true的時候可以看到的是原來的自定義標簽被template替代了 要是restric ...
  • 這裡多謝某童鞋的提醒!說我的上篇隨筆jquery插件開發的方式一還還可用於合併參數和深clone,雖然方式二中用了方式一做參數合併,但並未詳細介紹,所以今天在此處做點補充! 一、合併參數 jquery的extend擴展原型: 返回值未arg1,arg2……合併到arg。這裡就有兩種用法。 省略arg ...
  • avalon.js是一款迷你的MVVM框架,設計者將其相容到了IE6。輕巧的體積和良好的相容使它非常適合國內的某些項目(學校、政府、銀行)。然而有時候居然出現了在ie上無法渲染的情況。 例如下列這段簡單的demo: 在chrome上的顯示是: 而在ie8上顯示卻是這樣: 大家不要慌張,可能是你加入了 ...
  • 一,JS模塊化演變過程 1.普通函數封裝 最初的這種普通函數封裝的缺點很明顯:污染了全局變數,無法避免的會與其他模塊發生變數名衝突,而且自身模塊成員之間沒有任何聯繫,,說白了就是沒有做到“高內聚,低耦合”原則 2.對象 技術一直在進步,這種做法的避免了變數污染,只要保證模塊名唯一即可,自身模塊內的成 ...
  • 所謂彈性滾動就是指在翻動長頁面手指離開時,有由慢到塊,由快到慢的過度。 安卓平臺上的大多數瀏覽器都預設了該行為 ios當前還只對<body>下的 overflow 預設產生彈性滾動效果 前一陣子做了一個手機官網,用到了 <div> 中的 overflow,再調試 ios 中遇到了彈性滾動的問題: i ...
  • javascript的一切實例都是對象,只是對象之間稍有不同,分為基本類型和引用類型。 基本類型對象指的是字元串(String)、數值(Number)、布爾值(Boolean),引用類型對象指的是數組(Array)、對象(Object)、函數(Function)。 這兩類數據的引用有差別。普通對象存 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...