Detect if an app was uninstalled

前端 未结 4 1623
忘了有多久
忘了有多久 2021-01-17 15:34

Is there a way to get a system notification when an app has been uninstalled?

I would like to maintain a table of all clients\' info currently using my app. However

4条回答
  •  再見小時候
    2021-01-17 16:29

    From Android document, the app uninstalled by user can't not get

    Intent.ACTION_PACKAGE_REMOVE
    

    But we can use other method to implement this feature. We all know that there is a directory named with your package name under the /data/data directory after your app installed by user. If your app is uninstalled by user, the root directory of your app(/data/data/com.example.yourappname) will be removed by system. The remove action happen immediately when user click "uninstall", and the directory will be removed by framework package manager system.

    So, we can monitor the existence of your app data directory(which usually /data/data/com.example.yourappname) to detect if your app uninstalled by user.

    In order to monitor this directory, we have to fork a detached process from JNI. In this new fork process, we can use Linux system api inotify(7) or access(3) to determine the existence of app's data directory.

    Here is a workable implementation. But it got the permission problem when try to send an intent to start system browser on high version Android device. I have no idea how to bypass this. However the example above is enough for your question.

    Hope it will be helpful!

提交回复
热议问题