android实现卸载提示
来源:互联网 发布:mac版变色龙工具下载 编辑:程序博客网 时间:2024/05/16 18:26
这篇文章是整理的以前用过的一个功能,由于多种原因现在停用了,也希望这篇文章能帮助一些android入门的小童鞋。android是不提供监控卸载自己的功能的,这里使用了监控android日志的功能,android日志相关知识可以参考《adb logcat 查看日志》这篇文章。
android卸载提示的思路是启动一个服务监控android系统的打印日志,当监控到"android.intent.action.DELETE"并且包含自己应用的包名时,提示给用户。
监控代码
public class AndroidLogcatScannerThread extends Thread { private LogcatObserver observer; public AndroidLogcatScannerThread(LogcatObserver observer) { this.observer = observer; } public void run() { String[] cmds = { "logcat", "-c" }; String shellCmd = "logcat"; Process process = null; InputStream is = null; DataInputStream dis = null; String line = ""; Runtime runtime = Runtime.getRuntime(); try { observer.handleLog(line); int waitValue; waitValue = runtime.exec(cmds).waitFor(); observer.handleLog("waitValue=" + waitValue + "\n Has do Clear logcat cache."); process = runtime.exec(shellCmd); is = process.getInputStream(); dis = new DataInputStream(is); while ((line = dis.readLine()) != null) { //Log.d("Log","Log.Bestpay:"+line); if(observer!=null) observer.handleLog(line); } } catch (InterruptedException e) { e.printStackTrace(); } catch (IOException ie) { ie.printStackTrace(); } finally { try { if (dis != null) { dis.close(); } if (is != null) { is.close(); } if (process != null) { process.destroy(); } } catch (Exception e) { e.printStackTrace(); } } }}
监控服务:
public class AndroidLogcatScannerService extends Service implements LogcatObserver{@Overridepublic void onCreate() {// TODO Auto-generated method stubsuper.onCreate();}@Overridepublic void onDestroy() {// TODO Auto-generated method stubsuper.onDestroy();}@Overridepublic void onStart(Intent intent, int startId) {// TODO Auto-generated method stubsuper.onStart(intent, startId);AndroidLogcatScannerThread scannerThread=new AndroidLogcatScannerThread(AndroidLogcatScannerService.this);scannerThread.start();}@Overridepublic IBinder onBind(Intent intent) {// TODO Auto-generated method stubreturn null;}@Overridepublic void handleLog(String info) {// TODO Auto-generated method stubif (info.contains("android.intent.action.DELETE") && info.contains(getPackageName())) { Intent intent = new Intent(); intent.setClass(AndroidLogcatScannerService.this, UninstallActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); }}}
上面的代码基本实现了卸载提示,最后不要忘了权限:
<uses-permission android:name="android.permission.READ_LOGS"></uses-permission>
代码下载地址:
http://download.csdn.net/detail/xyz_lmn/4904797
/**
* @author 张兴业
* 邮箱:xy-zhang#163.com
* android开发进阶群:278401545
* http://blog.csdn.net/xyz_lmn
*/
- android实现卸载提示
- android实现卸载提示
- android实现卸载提示 实例
- [Android]APK程序卸载提示
- android卸载反馈实现
- android卸载反馈实现
- Android实现静默卸载
- 启动一个服务监控android系统的打印日志--实现卸载软件提示
- android应用卸载提示(实用推荐)
- android 实现静默安装、卸载
- android 实现静默安装、卸载
- Android实现应用程序卸载自己
- android 实现静默安装、卸载
- android 实现静默安装、卸载
- android编程实现卸载应用
- android 静默安装、卸载实现
- android 实现应用卸载反馈
- Android 防卸载实现代码。
- wpf日记
- javascript clipboardData对象详解
- Java多线程编程详解
- Socket编程
- 原型模式(Prototype Pattern)
- android实现卸载提示
- 使用并行计算大幅提升递归算法效率
- c# 关键字 params ref out
- 字符串转换为日期格式(datetime)只显示年月日
- C6优化数据库IndexDefrag
- jquery-1.6.2.js
- shmid_ds 一个特殊的数据结构
- 常用log4j配置 [精简实用]
- JSON转换