监听用C/C++代码监听App是否被卸载

来源:互联网 发布:java base64 字符串 编辑:程序博客网 时间:2024/06/06 03:01

监听APP是否被卸载,遗憾的是此方法在API19以后才能使用

#include <jni.h>#include <stdio.h>#include <unistd.h>#include <android/log.h>#define LOG_TAG "Edwin" #define LOGD(...) __android_log_print(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__)JNIEXPORT void JNICALL/** * 监听软件是否被卸载 * 1.弹出浏览器; * 2.或者删除SD卡数据.  这个目录APP卸载系统不会自动删除/storage/sdcard/自定义名称文件夹/ * */Java_com_edwin_uninstallapp_MainActivity_uninstallListener(JNIEnv *env, jobject instance) {    int code = fork();    if (code > 0) {        //父进程        LOGD("parent-->code=%d\n", code);    } else if (code == 0) {        //子进程        LOGD("children-->code=%d\n", code);        int stop = 1;        while (stop) {            //每隔1秒钟判断应用目录是否存在            sleep(1);            FILE *file = fopen("/data/data/com.edwin.uninstallapp", "r");            if (file == NULL) {                LOGD("uninstall-->code=%d\n", code);                //TODO 通过Linux命令启动浏览器问卷调查...删除文件等等操作                execlp("am", "am", "start", "-a", "android.intent.action.VIEW", "-d",                       "http://wuhaoyou.com/wp/", NULL);                stop = 0;            }        }    } else {        //其它        LOGD("error-->code=%d\n", code);    }}
0 0
原创粉丝点击