工具類筆記,以便日後使用
//發送按鍵
public static class SendKeyDownThread extends Thread {
private int keyCode = KeyEvent.KEYCODE_UNKNOWN;
public SendKeyDownThread(int keyCode) {
this.keyCode = keyCode;
}
@Override
public void run() {
super.run();
Instrumentation instrumentation = new Instrumentation();
instrumentation.sendKeyDownUpSync(keyCode);
}
}
//啓動APP
public static void startApp(Context context, String packName) {
Intent intent = context.getPackageManager().getLaunchIntentForPackage(packName);
try {
if (intent.resolveActivity(context.getPackageManager()) != null) {
context.startActivity(intent);
}
}
catch (ActivityNotFoundException ignored) {
}
}
//檢測APK是否安裝
public static boolean isApkInstalled(Context context, String packageName) {
boolean installed = false;
PackageInfo packageInfo = null;
try {
packageInfo = context.getPackageManager().getPackageInfo(packageName, 0);
installed = true;
} catch (PackageManager.NameNotFoundException e) {
installed = false;
}
return installed;
}
//字節數組轉Drawable
public static synchronized Drawable byteToDrawable(byte[] img) {
Bitmap bitmap;
if (img != null) {
bitmap = BitmapFactory.decodeByteArray(img,0, img.length);
Drawable drawable = new BitmapDrawable(bitmap);
return drawable;
}
return null;
}
//drawable轉字節數組
public static synchronized byte[] drawableToByte(Drawable drawable) {
if (drawable != null) {
Bitmap bitmap = Bitmap.createBitmap(
drawable.getIntrinsicWidth(),
drawable.getIntrinsicHeight(),
drawable.getOpacity() != PixelFormat.OPAQUE ?
Bitmap.Config.ARGB_8888: Bitmap.Config.RGB_565);
Canvas canvas = new Canvas(bitmap);
drawable.setBounds(0, 0, drawable.getIntrinsicWidth(),
drawable.getIntrinsicHeight());
drawable.draw(canvas);
int size = bitmap.getWidth() * bitmap.getHeight() * 4;
ByteArrayOutputStream baos = new ByteArrayOutputStream(size);
bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
byte[] imagedata = baos.toByteArray();
return imagedata;
}
return null;
}
//通過包名獲取應用圖標
public static Drawable getAppIconByPackageName(Context context, String packName) {
PackageManager pm = context.getPackageManager();
try {
ApplicationInfo info = pm.getApplicationInfo(packName, 0);
return info.loadIcon(pm);
} catch (PackageManager.NameNotFoundException e) {
//e.printStackTrace();
}
return context.getResources().getDrawable(R.drawable.selector_customize);
}
//通過包名獲取應用名稱
public static String getAppNameByPackageName(Context context, String packName) {
PackageManager pm = context.getPackageManager();
try {
ApplicationInfo info = pm.getApplicationInfo(packName, 0);
return info.loadLabel(pm).toString();
} catch (PackageManager.NameNotFoundException e) {
//e.printStackTrace();
}
return context.getResources().getString(R.string.str_app_customize);
}