Android中區分系統程式和安裝程式

2021-06-23 07:51:57 字數 1202 閱讀 6175

在google上輸入以上的關鍵字+ android,可以搜到的**

listpacks = getpackagemanager().getinstalledpackages(0);

雖然,有些**號稱可以過濾掉系統自身的應用程式,但是只要細看**就會發現,好像裡面的那個布林變數沒有起到什麼過濾的作用。

方法一:通過獲取的安裝包(包括安裝的與系統自身的應用程式),對其android.content.pm.packageinfo的packagename 進行過濾,

但是android與google的包比較容易過濾掉,但需要對不同產商進行適配;

由於普通的程式是無法讀取這兩個資料夾的,需要root許可權吧,因此該方法也行不通(用file.listfiles() + android.permission.factory_test 許可權 還是不能列舉出檔案)

packagemanager pckman = getpackagemanager();

listpacks = pckman.getinstalledpackages(0);

count = packs.size();

string name;

int installednum = 0;

for(int i = 0; i < count; i++) {

packageinfo p = packs.get(i);

if (p.versionname == null)

continue;

方法

三、可以通過uid來過濾系統系統的安裝包,因為android系統中的uid從 1000 ~ 9999 都是給系統程式保留的,所以只要判斷package的uid > 10000即可判定該程式是非系統程式。

if10000)

//非系統程式

uid是程式在安裝的時候由系統分配的。

方法四:這個方法應該是最優的。在廣告殺手中用的這個區分系統還是第三方軟體

/*** device's system image.

*///系統程式

else

//不是系統程式

android系統中區分UDisk和SDCard

因專案要求,需要將udisk和sdcard掛載的名稱區分開來,系統預設是將這些可移動儲存裝置的uuid作為其掛載的目錄名稱的,如下所示 這裡就是裝置可移動儲存裝置的掛載名稱的,這裡失獲取相應的裝置id並判斷uuid如果不為空則使用裝置的uuid作為stable name 所以在這裡通過判斷是udis...

Android中級篇之區分系統程式和安裝程式

在google上輸入以上的關鍵字 android,可以搜到的 1listpacks getpackagemanager getinstalledpackages 0 雖然,有些 號稱可以過濾掉系統自身的應用程式,但是只要細看 就會發現,好像裡面的那個布林變數沒有起到什麼過濾的作用。方法一 通過獲取的...

js中區分 和0

在js中if 0 的結果是true。有時候我們在處理 和0的時候是執行不同步驟的。這時候我們需要區分這兩者。這時候可以使用js的string 函式轉化為string再進行判斷。此外 還有一些為true的情況 0 false false null undefined 同時,以上的0,false,nul...