android 根据apk文件获取包名等信息 已经判断 指定 这个apk 是否安装过

来源:互联网 发布:数据挖掘与r语言 代码 编辑:程序博客网 时间:2024/06/07 01:58

http://blog.163.com/benben_long/blog/static/1994582432014219104154971/

比如sd卡里有一个apk文件,可以根据这个apk文件得到他的包名及版本等一切信息。

package com.example.test;

import com.example.androidgametest.R;

import android.app.Activity;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.os.Environment;
import android.widget.TextView;

public class test extends Activity{
 private TextView mTvTest;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.test);
  
  mTvTest=(TextView) findViewById(R.id.tv_test);
  
  PackageManager pm = this.getPackageManager();
        PackageInfo info = pm.getPackageArchiveInfo(Environment.getExternalStorageDirectory()+"/TianjinPlugin3.apk", PackageManager.GET_ACTIVITIES);
        ApplicationInfo appInfo = null;
        if (info != null) {
            appInfo = info.applicationInfo;
            String packageName = appInfo.packageName;
            mTvTest.setText(packageName);
        }

 }
 
}

因为要从SD卡读这个apk,所以千万别忘了添加权限permission.READ_EXTERNAL_STORAGE


http://blog.csdn.net/chuxing/article/details/7219057

android 判断程序是否安装

1,根据包名判断

public boolean checkApkExist(Context context, String packageName) {
if (packageName == null || “”.equals(packageName))
return false;
try {
ApplicationInfo info = context.getPackageManager()
.getApplicationInfo(packageName,
PackageManager.GET_UNINSTALLED_PACKAGES);
return true;
} catch (NameNotFoundException e) {
return false;
}
}
2. 根据Intent判断
public boolean checkApkExist(Context context, Intent intent) {
List<ResolveInfo> list =  context.getPackageManager().queryIntentActivities(intent, 0);
if(list.size() > 0){
return true;
}
return false;
}
 public boolean checkApkExist(Context context, String packageName) {
if (packageName == null || “”.equals(packageName)) return false;
 try {
ApplicationInfo info = context.getPackageManager() .getApplicationInfo(packageName, PackageManager.GET_UNINSTALLED_PACKAGES); return true;
} catch (NameNotFoundException e) { return false; }
public boolean checkApkExist(Context context, Intent intent) {
  List<ResolveInfo> list = context.getPackageManager()
    .queryIntentActivities(intent, 0);
  if (list.size() > 0) {
   return true;
  }
  return false;
 }


0 0
原创粉丝点击