package net.makito.himitsu;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.util.Log;
public class ZXingExist {
public static void Install(Context ctx) {
Intent intentInstall = new Intent();
String apkPath = "/data/data/" + ctx.getPackageName() + "/files";
String apkName = "com.srowen.bs.android_25.apk";
File file = new File(apkPath, apkName);
try {
InputStream is = ctx.getAssets().open("com.srowen.bs.android_25.apk");
if (!file.exists()) {
file.createNewFile();
FileOutputStream os = ctx.openFileOutput(file.getName(),
Context.MODE_WORLD_WRITEABLE);
byte[] bytes = new byte[512];
int i = -1;
while ((i = is.read(bytes)) > 0) {
os.write(bytes);
}
os.close();
is.close();
Log.e("", "----------- has been copy to ");
} else {
Log.e("", "-----------cunzai ");
}
String permission = "666";
try {
String command = "chmod " + permission + " " + apkPath + "/"
+ apkName;
Runtime runtime = Runtime.getRuntime();
runtime.exec(command);
} catch (IOException e) {
e.printStackTrace();
}
} catch (Exception e) {
Log.e("", e.toString());
}
Log.e("", "fl--" + file.getName() + "-dd---" + file.getAbsolutePath()
+ "-pa-" + file.getPath());
intentInstall.setAction(android.content.Intent.ACTION_VIEW);
intentInstall.setDataAndType(Uri.fromFile(file),
"application/vnd.android.package-archive");
intentInstall.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
ctx.startActivity(intentInstall);
}
public static boolean isAvilible(Context context, String packageName){
final PackageManager packageManager = context.getPackageManager();//获取packagemanager
List<PackageInfo> pinfo = packageManager.getInstalledPackages(0);//获取所有已安装程序的包信息
List<String> pName = new ArrayList<String>();//用于存储所有已安装程序的包名
//从pinfo中将包名字逐一取出,压入pName list中
if(pinfo != null){
for(int i = 0; i < pinfo.size(); i++){
String pn = pinfo.get(i).packageName;
pName.add(pn);
}
}
return pName.contains(packageName);//判断pName中是否有目标程序的包名,有TRUE,没有FALSE
}
}