getApplicationInfo的坑

getApplicationInfo的坑

一般情況下我們通過(guò)PackageManager.GET_UNINSTALLED_PACKAGES來(lái)檢查應(yīng)用是否安裝狸捅,且不論其本身存在的不正確性,自Android 4.2(API 17)以后超全,多賬戶的出現(xiàn)橘原,其又新出現(xiàn)一些坑”ぃ現(xiàn)在Android 7.0(API 24)使用MATCH_UNINSTALLED_PACKAGES 將其替換县习。

問(wèn)題描述

在做微信分享操作之前掘而,應(yīng)用內(nèi)先對(duì)微信App進(jìn)行一次判斷是否安裝迫悠,使用的方法:

public boolean checkApkExist(Context context, String packageName) {
    try {
        ApplicationInfo info = context.getPackageManager().getApplicationInfo(packageName,
            PackageManager.GET_UNINSTALLED_PACKAGES);
        if (info != null)
            return true;
    } catch (PackageManager.NameNotFoundException e) {
        return false;
    }
    return false;
}

在我的設(shè)備上存在兩個(gè)賬戶鹏漆,一個(gè)管理員賬戶用于日常使用,另一個(gè)普通賬戶用于開(kāi)發(fā)创泄,在我的管理員賬戶中安裝了微信甫男,而普通賬戶里面沒(méi)有安裝微信,但是在普通賬戶里運(yùn)行這段代碼验烧,其會(huì)告訴你安裝了微信板驳。

問(wèn)題分析

從API 24的源碼可以看到,其實(shí)GET_UNINSTALLED_PACKAGES標(biāo)志僅僅用于查詢?cè)谑謾C(jī)系統(tǒng)分區(qū)存在數(shù)據(jù)目錄的應(yīng)用:

/**
 * @deprecated replaced with {@link #MATCH_UNINSTALLED_PACKAGES}
 */
@Deprecated
public static final int GET_UNINSTALLED_PACKAGES = 0x00002000;

/**
 * Flag parameter to retrieve some information about all applications (even
 * uninstalled ones) which have data directories. This state could have
 * resulted if applications have been deleted with flag
 * {@code DONT_DELETE_DATA} with a possibility of being replaced or
 * reinstalled in future.
 * <p>
 * Note: this flag may cause less information about currently installed
 * applications to be returned.
 */
public static final int MATCH_UNINSTALLED_PACKAGES = 0x00002000;

其實(shí)這個(gè)標(biāo)簽都不一定能保證應(yīng)用就一定安裝著碍拆,只能說(shuō)應(yīng)用是否安裝過(guò)若治,而多賬戶下就更不能保證這個(gè)賬戶下就一定安裝過(guò)了,因?yàn)榭梢允橇硪粋€(gè)賬戶下安裝過(guò)感混。

問(wèn)題解決

  • 盡量不要使用GET_UNINSTALLED_PACKAGES或者M(jìn)ATCH_UNINSTALLED_PACKAGES去判斷應(yīng)用是否已安裝或者安裝過(guò)端幼。
  • 微信的API自有判斷是否安裝的方法。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末弧满,一起剝皮案震驚了整個(gè)濱河市婆跑,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌庭呜,老刑警劉巖滑进,帶你破解...
    沈念sama閱讀 222,104評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異募谎,居然都是意外死亡扶关,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門数冬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)节槐,“玉大人,你說(shuō)我怎么就攤上這事拐纱⊥欤” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,697評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵秸架,是天一觀的道長(zhǎng)揍庄。 經(jīng)常有香客問(wèn)我,道長(zhǎng)咕宿,這世上最難降的妖魔是什么币绩? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,836評(píng)論 1 298
  • 正文 為了忘掉前任蜡秽,我火速辦了婚禮,結(jié)果婚禮上缆镣,老公的妹妹穿的比我還像新娘芽突。我一直安慰自己,他們只是感情好董瞻,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布寞蚌。 她就那樣靜靜地躺著,像睡著了一般钠糊。 火紅的嫁衣襯著肌膚如雪挟秤。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,441評(píng)論 1 310
  • 那天抄伍,我揣著相機(jī)與錄音艘刚,去河邊找鬼。 笑死截珍,一個(gè)胖子當(dāng)著我的面吹牛攀甚,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播岗喉,決...
    沈念sama閱讀 40,992評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼秋度,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了钱床?” 一聲冷哼從身側(cè)響起荚斯,我...
    開(kāi)封第一講書(shū)人閱讀 39,899評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎查牌,沒(méi)想到半個(gè)月后事期,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,457評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡僧免,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評(píng)論 3 341
  • 正文 我和宋清朗相戀三年刑赶,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片懂衩。...
    茶點(diǎn)故事閱讀 40,664評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖金踪,靈堂內(nèi)的尸體忽然破棺而出浊洞,到底是詐尸還是另有隱情,我是刑警寧澤胡岔,帶...
    沈念sama閱讀 36,346評(píng)論 5 350
  • 正文 年R本政府宣布衙传,位于F島的核電站姐扮,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏火邓。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評(píng)論 3 334
  • 文/蒙蒙 一礁叔、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦润匙、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,511評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至巍膘,卻和暖如春厂财,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背峡懈。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,611評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工璃饱, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人肪康。 一個(gè)月前我還...
    沈念sama閱讀 49,081評(píng)論 3 377
  • 正文 我出身青樓帜平,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親梅鹦。 傳聞我的和親對(duì)象是個(gè)殘疾皇子裆甩,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)齐唆,斷路器嗤栓,智...
    卡卡羅2017閱讀 134,704評(píng)論 18 139
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,304評(píng)論 25 707
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件箍邮、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,121評(píng)論 4 61
  • APK安裝流程系列文章整體內(nèi)容如下: APK安裝流程詳解0——前言APK安裝流程詳解1——有關(guān)"安裝ing"的實(shí)體...
    隔壁老李頭閱讀 12,515評(píng)論 3 9
  • 遇見(jiàn) 夜樱蛤,萬(wàn)籟俱靜。銘一個(gè)人坐在辦公室剑鞍,思緒萬(wàn)千昨凡。 今天是女兒的六歲生日,桌子上放著一套很漂亮的芭比娃娃蚁署,是之前買...
    蕭澄閱讀 385評(píng)論 19 9