Android中操作App的一些常用方法

原创 2017年08月24日 11:32:07

1.判断App是否安装

private boolean isAppInstalled(Context context, String uri) {
        PackageManager pm = context.getPackageManager();
        boolean installed = false;
        try {
            pm.getPackageInfo(uri, PackageManager.GET_ACTIVITIES);
            installed = true;
        } catch (PackageManager.NameNotFoundException e) {
            installed = false;
        }
        return installed;
    }

2. public boolean isAppInstalled(Context context, String packageName) {
        final PackageManager packageManager = context.getPackageManager();
        List<PackageInfo> pinfo = packageManager.getInstalledPackages(0);
        List<String> pName = new ArrayList<String>();
        if (pinfo != null) {
            for (int i = 0; i < pinfo.size(); i++) {
                String pn = pinfo.get(i).packageName;
                pName.add(pn);
            }
        }
        return pName.contains(packageName);
    }

例子:

if (isInstallApp(MainActivity.this, "com.xxx")) {
                    System.out.println("Installed!!");
                } else {
                    System.out.println("Not installed!!");
                }
                

2.App请求root权限

  Process process = null;
        DataOutputStream os = null;
        try {
            String cmd = "chmod 777 " + getPackageCodePath();
            process = Runtime.getRuntime().exec("su"); // 切换到root帐号
            os = new DataOutputStream(process.getOutputStream());
            os.writeBytes(cmd + "\n");
            os.writeBytes("exit\n");
            os.flush();
            process.waitFor();
        } catch (Exception e) {
            // return false;
        } finally {
            try {
                if (os != null) {
                    os.close();
                }
                process.destroy();
            } catch (Exception e) {
            }
        }

3.App实现静默安装



http://blog.csdn.net/h3c4lenovo/article/details/9202323

4.查看apk信息,keystore或者jks信息

1、查看 keystore 
$ keytool -list -v -keystore debug.keystore
$ keytool -list -v -keystore debug.keystore 
Enter keystore password:
2、查看三方应用或是系统应用签名
打开待查看的apk,将其中META-INF文件夹解压出来,得到其中的CERT.RSA文件
$ keytool -printcert -file META-INF/CERT.RSA
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jdfkldjlkjdl/article/details/77528009

跟我一起写 Makefile(十三)

五、定义模式规则你可以使用模式规则来定义一个隐含规则。一个模式规则就好像一个一般的规则,只是在规则中,目标的定义需要有"%"字符。"%"的意思是表示一个或多个任意字符。在依赖目标中同样可以使用"%",...
  • haoel
  • haoel
  • 2004-02-25 10:16:00
  • 23282

String的一些常用方法

一丶String类 1,String的比较,涉及的常用函数为 equals(),equalsIgnoreCase()-------->比较String内容 compareTo(),compare...
  • u014167212
  • u014167212
  • 2014-03-28 11:08:53
  • 1107

android app首次进入的时候进行提醒操作

布局文件。外层用RelativeLayout 最后使用一张图片 并且android:keepScreenOn="true"
  • fuweiping
  • fuweiping
  • 2012-10-17 16:50:34
  • 1494

app首次进入的时候,新手操作进行提醒操作

android:layout_width="fill_parent"      android:layout_height="fill_parent" >                  andro...
  • tsdfk1455
  • tsdfk1455
  • 2013-11-07 10:49:14
  • 1396

android中,非常实用的 类,方法,工具

原文连接:http://www.zhihu.com/question/33636939/answer/57171337 1、Throwable接口中的getStackTrace()方法(...
  • luomoBM
  • luomoBM
  • 2016-12-24 22:21:10
  • 578

hibernate 常用方法

hibernate 常用方法   一、hibetnateTemplate常用方法 1、delete(Object entity) 删除指定的持久化实例 在程序中一般先用    Asse...
  • wangbaojian_good
  • wangbaojian_good
  • 2013-09-16 10:54:55
  • 1042

Java中常用的类及常用方法的一些实例

Java常用类:Object、Math、String、包装类、Date Java集合框架:                         接口:Collection、List、Set、Map、Ite...
  • wxddsr
  • wxddsr
  • 2015-09-12 10:12:15
  • 1597

java 中的一些常用方法

将json格式转换成 对象  super.getJsonUtil().fromJSon(json, PayNoteVO.class); PayNoteVO : 为实体对象 将日期Fri J...
  • duweiqian
  • duweiqian
  • 2016-06-24 16:36:53
  • 186

Android 多线程:这是一份详细的AsyncTask使用教程

前言 多线程的应用在Android开发中是非常常见的,常用方法主要有: 继承Thread类 实现Runnable接口 Handler AsyncTask HandlerThread 今天,我将献...
  • carson_ho
  • carson_ho
  • 2018-02-12 08:11:27
  • 7888
收藏助手
不良信息举报
您举报文章:Android中操作App的一些常用方法
举报原因:
原因补充:

(最多只允许输入30个字)