簡體   English   中英

在Android上收聽自己的應用程序卸載事件

[英]Listen to own application uninstall event on Android

據我所知,應用程序無法為自己的卸載獲取意圖:

但是Dolphin Browser如何設法接收“已刪除”事件並啟動瀏覽器,如附圖所示

在此輸入圖像描述

ADB:
        10-20 12:37:00.997: D/BackupManagerService(527): Received broadcast Intent { act=android.intent.action.PACKAGE_REMOVED dat=package:mobi.mgeek.TunnyBrowser flg=0x8000010 (has extras) }
    10-20 12:37:00.997: V/BackupManagerService(527): removePackageParticipantsLocked: uid=10112 #1
    10-20 12:37:01.007: D/dalvikvm(527): GC_EXPLICIT freed 2247K, 12% free 20128K/22868K, paused 3ms+10ms, total 212ms
    10-20 12:37:01.107: D/dalvikvm(527): GC_FOR_ALLOC freed 1508K, 15% free 19649K/22868K, paused 60ms, total 60ms
    10-20 12:37:01.137: D/AndroidRuntime(4028): Calling main entry com.android.commands.am.Am
    10-20 12:37:01.137: D/dalvikvm(4028): Note: class Landroid/app/ActivityManagerNative; has 163 unimplemented (abstract) methods
    10-20 12:37:01.147: I/ActivityManager(527): START u0 {act=android.intent.action.VIEW dat=http://survey.dolphin.com/int/uninstall?id=014f4d1981d6f88bb56630e7a3a7550a&pn=mobi.mgeek.TunnyBrowser&v=248&s=ofw&it=1382250136565&ut=1382250127000&m=Nexus 4&os=android&osv=4.3&cc=US&no=40471&lang=en&jk=uninstalled&ft=212&ht=957&ct=0&nt=1&res=768*1184&ifi=1&lts=1&iow=0&iom=0&iospd=0&iogs=0&debug=false&t=1382252820000 flg=0x10000000 cmp=com.android.chrome/com.google.android.apps.chrome.Main} from pid 4028
    10-20 12:37:01.157: D/AndroidRuntime(4028): Shutting down VM

您可以通過以下方式獲取自己應用的卸載事件。

在本機代碼中使用inotify 例如:您可以使用inotify_add_watch來監視應用程序的數據緩存文件夾,如: /data/data/your-package-name/cache
卸載應用程序后,您可以獲取文件夾的刪除事件。

另一個關鍵點是inotify應該在您自己的應用程序的單獨進程中運行。
您可以調用fork()來執行此操作。

我已經驗證了邏輯。 :)

這是Andorid中的一個安全問題,已經向Google團隊報告並在Android 4.4中修復。 這是我對其如何工作的解釋

當用戶在電話設置中轉到應用程序管理器並單擊您的應用程序時,您會收到包含應用程序名稱的廣播,如果用戶單擊卸載btn,則必須啟動com.android.uninstaller.UnistallerActivity

如果您獲得了一個意圖和您的應用程序名稱,這意味着用戶在“應用程序管理器”中單擊您的應用程序,使用PackageManager啟動活動監視器並獲取頂部可見活動及其包,如果用戶單擊卸載按鈕你將UnistallerActivity作為頂級活動,你可以在網絡瀏覽器上彈出調查,或者做你想做的事情。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM