From b550b23adf56e906c5bd159df4b23b1fddbd9a91 Mon Sep 17 00:00:00 2001 From: longbai Date: Wed, 5 Aug 2015 22:38:52 +0800 Subject: [PATCH] fixed invalid android build.model upload failed --- .../com/qiniu/android/http/UserAgent.java | 30 ++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/library/src/main/java/com/qiniu/android/http/UserAgent.java b/library/src/main/java/com/qiniu/android/http/UserAgent.java index e45fc36b8..b9a5c4484 100644 --- a/library/src/main/java/com/qiniu/android/http/UserAgent.java +++ b/library/src/main/java/com/qiniu/android/http/UserAgent.java @@ -1,5 +1,8 @@ package com.qiniu.android.http; +import android.os.Build; +import android.text.TextUtils; + import com.qiniu.android.common.Constants; import java.util.Random; @@ -30,10 +33,35 @@ private static String genId() { private static String getUserAgent(String id) { return format("QiniuAndroid/%s (%s; %s; %s)", Constants.VERSION, - android.os.Build.VERSION.RELEASE, android.os.Build.MODEL, id); + android.os.Build.VERSION.RELEASE, device(), id); } public String toString() { return ua; } + + private static String device() + { + String model = Build.MODEL.trim(); + String device = deviceName(Build.MANUFACTURER.trim(), model); + if (TextUtils.isEmpty(device)) { + device = deviceName(Build.BRAND.trim(), model); + } + return (device == null ? "" : device) + "-" + model; + } + + private static String deviceName(String manufacturer, String model) + { + String str = manufacturer.toLowerCase(); + if ((str.startsWith("unknown")) || (str.startsWith("alps")) || + (str.startsWith("android")) || (str.startsWith("sprd")) || + (str.startsWith("spreadtrum")) || (str.startsWith("rockchip")) || + (str.startsWith("wondermedia")) || (str.startsWith("mtk")) || + (str.startsWith("mt65")) || (str.startsWith("nvidia")) || + (str.startsWith("brcm")) || (str.startsWith("marvell")) || + (model.toLowerCase().contains(str))) { + return null; + } + return manufacturer; + } }