获取当前手机厂商:
1.
if (checkPhoneFirm().equals(PhoneConstant.IS_HUAWEI)) {
//华为
// getPermisstion("huawei");
} else if (checkPhoneFirm().equals(PhoneConstant.IS_XIAOMI)) {
//小米
} else if (checkPhoneFirm().equals(PhoneConstant.IS_OPPO)) {
//oppo
} else if (checkPhoneFirm().equals(PhoneConstant.IS_VIVO)) {
//vivo
} else if (checkPhoneFirm().equals(PhoneConstant.IS_MEIZU)) {
//魅族
} else if (checkPhoneFirm().equals(PhoneConstant.IS_SAMSUNG)) {
//三星
requestIgnoreBatteryOptimizations();
} else if (checkPhoneFirm().equals(PhoneConstant.IS_LETV)) {
//乐视
} else if (checkPhoneFirm().equals(PhoneConstant.IS_SMARTISAN)) {
//锤子
}
2.
//判断手机厂商
public String checkPhoneFirm() {
String phoneState = Build.BRAND.toLowerCase(); //获取手机厂商
if (phoneState.equals("huawei") || phoneState.equals("honor"))
return PhoneConstant.IS_HUAWEI;
else if (phoneState.equals("xiaomi") && Build.BRAND != null)
return PhoneConstant.IS_XIAOMI;
else if (phoneState.equals("oppo") && Build.BRAND != null)
return PhoneConstant.IS_OPPO;
else if (phoneState.equals("vivo") && Build.BRAND != null)
return PhoneConstant.IS_VIVO;
else if (phoneState.equals("meizu") && Build.BRAND != null)
return PhoneConstant.IS_MEIZU;
else if (phoneState.equals("samsung") && Build.BRAND != null)
return PhoneConstant.IS_SAMSUNG;
else if (phoneState.equals("letv") && Build.BRAND != null)
return PhoneConstant.IS_LETV;
else if (phoneState.equals("smartisan") && Build.BRAND != null)
return PhoneConstant.IS_SMARTISAN;
return "";
}
3.
public class PhoneConstant {
public final static String IS_HUAWEI = "isHuawei"; //华为
public final static String IS_XIAOMI = "isXiaomi"; //小米
public final static String IS_OPPO = "isOppo"; //oppo
public final static String IS_VIVO = "isVivo"; //vivo
public final static String IS_MEIZU = "isMeizu"; //魅族
public final static String IS_SAMSUNG = "isSamsung"; //三星
public final static String IS_LETV = "isLetv"; //乐视
public final static String IS_SMARTISAN = "isSmartisan"; //锤子
}
获取允许后台活动权限:
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
@RequiresApi(api = Build.VERSION_CODES.M)
public void requestIgnoreBatteryOptimizations() {
try {
Intent intent = new Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
intent.setData(Uri.parse("package:" + getPackageName()));
startActivity(intent);
} catch (Exception e) {
e.printStackTrace();
}
}