Report storage and multi-user info.
Indicate how many storage devices are detected, and how many users
are supported.
Change-Id: I3b2290de84a225159a33fbd2d591f9930c7fa920
diff --git a/tools/device-setup/TestDeviceSetup/src/android/tests/getinfo/DeviceInfoActivity.java b/tools/device-setup/TestDeviceSetup/src/android/tests/getinfo/DeviceInfoActivity.java
index 934e67d..e18e626 100644
--- a/tools/device-setup/TestDeviceSetup/src/android/tests/getinfo/DeviceInfoActivity.java
+++ b/tools/device-setup/TestDeviceSetup/src/android/tests/getinfo/DeviceInfoActivity.java
@@ -27,7 +27,6 @@
import java.util.Locale;
import java.util.concurrent.CountDownLatch;
-
/**
* Collect device information on target device.
*/
diff --git a/tools/device-setup/TestDeviceSetup/src/android/tests/getinfo/DeviceInfoConstants.java b/tools/device-setup/TestDeviceSetup/src/android/tests/getinfo/DeviceInfoConstants.java
index c06c21e..4a0ea66 100644
--- a/tools/device-setup/TestDeviceSetup/src/android/tests/getinfo/DeviceInfoConstants.java
+++ b/tools/device-setup/TestDeviceSetup/src/android/tests/getinfo/DeviceInfoConstants.java
@@ -60,4 +60,6 @@
public static final String BUILD_VERSION = "buildVersion";
public static final String BUILD_TAGS = "build_tags";
public static final String SERIAL_NUMBER = "deviceID";
+ public static final String STORAGE_DEVICES = "storage_devices";
+ public static final String MULTI_USER = "multi_user";
}
diff --git a/tools/device-setup/TestDeviceSetup/src/android/tests/getinfo/DeviceInfoInstrument.java b/tools/device-setup/TestDeviceSetup/src/android/tests/getinfo/DeviceInfoInstrument.java
index 49e96a0..29b29bf 100644
--- a/tools/device-setup/TestDeviceSetup/src/android/tests/getinfo/DeviceInfoInstrument.java
+++ b/tools/device-setup/TestDeviceSetup/src/android/tests/getinfo/DeviceInfoInstrument.java
@@ -25,6 +25,8 @@
import android.content.res.Configuration;
import android.os.Build;
import android.os.Bundle;
+import android.os.Environment;
+import android.os.UserManager;
import android.telephony.TelephonyManager;
import android.util.DisplayMetrics;
import android.util.Log;
@@ -33,6 +35,8 @@
import java.io.IOException;
import java.lang.reflect.Field;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
@@ -135,6 +139,12 @@
String sysLibraries = getSystemLibraries();
addResult(SYS_LIBRARIES, sysLibraries);
+ // Storage devices
+ addResult(STORAGE_DEVICES, getStorageDevices());
+
+ // Multi-user support
+ addResult(MULTI_USER, getMultiUserInfo());
+
finish(Activity.RESULT_OK, mResults);
}
@@ -343,4 +353,42 @@
return builder.toString();
}
+
+ private String getStorageDevices() {
+ int count = 0;
+ count = Math.max(count, getContext().getExternalCacheDirs().length);
+ count = Math.max(count, getContext().getExternalFilesDirs(null).length);
+ count = Math.max(
+ count, getContext().getExternalFilesDirs(Environment.DIRECTORY_PICTURES).length);
+ count = Math.max(count, getContext().getObbDirs().length);
+
+ final String result;
+ if (Environment.isExternalStorageEmulated()) {
+ if (count == 1) {
+ return "1 emulated";
+ } else {
+ return "1 emulated, " + (count - 1) + " physical media";
+ }
+ } else {
+ return count + " physical media";
+ }
+ }
+
+ private String getMultiUserInfo() {
+ try {
+ final Method method = UserManager.class.getMethod("getMaxSupportedUsers");
+ final Integer maxUsers = (Integer) method.invoke(null);
+ if (maxUsers == 1) {
+ return "single user";
+ } else {
+ return maxUsers + " users supported";
+ }
+ } catch (ClassCastException e) {
+ } catch (NoSuchMethodException e) {
+ } catch (InvocationTargetException e) {
+ } catch (IllegalAccessException e) {
+ }
+
+ return "unknown";
+ }
}
diff --git a/tools/tradefed-host/res/report/cts_result.xsd b/tools/tradefed-host/res/report/cts_result.xsd
index 3f7f384..ce606e9 100644
--- a/tools/tradefed-host/res/report/cts_result.xsd
+++ b/tools/tradefed-host/res/report/cts_result.xsd
@@ -78,6 +78,8 @@
<xs:attribute name="partitions" type="xs:string"/>
<xs:attribute name="build_abi" type="xs:string"/>
<xs:attribute name="build_abi2" type="xs:string"/>
+ <xs:attribute name="storage_devices" type="xs:string"/>
+ <xs:attribute name="multi_user" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="FeatureInfo" type="featureInfoType"/>
diff --git a/tools/tradefed-host/res/report/cts_result.xsl b/tools/tradefed-host/res/report/cts_result.xsl
index dfddc09..b6fb699 100644
--- a/tools/tradefed-host/res/report/cts_result.xsl
+++ b/tools/tradefed-host/res/report/cts_result.xsl
@@ -298,6 +298,18 @@
</pre>
</TD>
</TR>
+ <TR>
+ <TD class="rowtitle">Storage devices</TD>
+ <TD>
+ <xsl:value-of select="TestResult/DeviceInfo/BuildInfo/@storage_devices"/>
+ </TD>
+ </TR>
+ <TR>
+ <TD class="rowtitle">Multi-user support</TD>
+ <TD>
+ <xsl:value-of select="TestResult/DeviceInfo/BuildInfo/@multi_user"/>
+ </TD>
+ </TR>
</TABLE>
</TD>
</TR>