package net.dev123.yibo.common;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.util.Log;
public class CompatibilityUtil {
public static final String TAG = CompatibilityUtil.class.getSimpleName();
public static List<String> listSdk; //sdk兼容列表;
private static Method overridePenddingTransition; //api level 5
static {
listSdk = new ArrayList<String>(10);
listSdk.add("1.5");
listSdk.add("3");
try {
overridePenddingTransition = Activity.class.getMethod(
"overridePendingTransition", new Class[] {Integer.TYPE, Integer.TYPE}
);
} catch (Exception e) {
if (Constants.DEBUG) {
Log.d(TAG, e.getMessage(), e);
}
}
}
/*
* 解决某些版本和设置,在传递参数EXTRA_OUTPUT,不起作用(1.5不起作用,只能getData()),
* 返回只有一半大小图片的bug;
*/
public static boolean hasImageCaptureBug() {
boolean hasBug = false;
String sdk = android.os.Build.VERSION.SDK;
for (String tempSdk : listSdk) {
if (sdk.indexOf(tempSdk) != -1) {
hasBug = true;
break;
}
}
if ("me600".equals(getModel().toLowerCase())) {
hasBug = false;
}
return hasBug;
}
/*
* 获得api level
*/
public static String getSdkVersion() {
return android.os.Build.VERSION.SDK;
}
/*
* 获得固件版本
*/
public static String getRelease() {
return android.os.Build.VERSION.RELEASE;
}
/*
* 获得手机型号
*/
public static String getModel() {
return android.os.Build.MODEL;
}
public static boolean isSdk1_5() {
String version = getSdkVersion();
return "3".equals(version);
}
public static void overridePendingTransition(Activity activity,
int enterAnim, int exitAnim) {
try {
if (overridePenddingTransition != null) {
overridePenddingTransition.invoke(activity, enterAnim, exitAnim);
}
} catch (Exception e) {
if (Constants.DEBUG) {
Log.d(TAG, e.getMessage(), e);
}
}
}
}