谁能解释下这是每个方法的用法:
、、、
public class SystemUtils { private static final ComponentName SYSTEM_UI = new ComponentName("com.android.systemui",
"com.android.systemui.SystemUIService");
private static final String SU_PATH1 = "/system/bin/su";
private static final String SU_PATH2 = "/system/xbin/su"; private SystemUtils() { } private static String getSuPath() {
File file = new File(SU_PATH1);
if (file.exists() && file.isFile() && file.canExecute()) {
return SU_PATH1;
} else {
File file1 = new File(SU_PATH2);
if (file1.exists() && file1.isFile() && file1.canExecute())
return SU_PATH2;
}
return null;
} public static final boolean isSystemUIRunning() {
ActivityManager actvityManager = (ActivityManager) EBookDroidApp.context
.getSystemService(Context.ACTIVITY_SERVICE);
List<RunningServiceInfo> rsiList = actvityManager.getRunningServices(1000); for (RunningServiceInfo rsi : rsiList) {
if (SYSTEM_UI.equals(rsi.service)) {
return true;
}
}
return false;
} public static void startSystemUI() {
if (isSystemUIRunning()) {
return;
}
exec(new String[] { "/system/bin/am", "startservice", "-n", "com.android.systemui/.SystemUIService" });
} public static boolean stopSystemUI() {
if (!isSystemUIRunning()) {
return true;
} final String su = getSuPath();
if (su == null) {
return false;
} else {
exec(new String[] { su, "-c", "service call activity 79 s16 com.android.systemui" });
}
return true;
} public static void toggleSystemUI() {
if (isSystemUIRunning()) {
stopSystemUI();
} else {
startSystemUI();
}
} public static void exec(final String... as) {
(new Thread(new Runnable() { public void run() {
execImpl(as);
}
})).start();
} private static String execImpl(String... as) {
try {
Process process = Runtime.getRuntime().exec(as);
InputStreamReader r = new InputStreamReader(process.getInputStream());
StringWriter w = new StringWriter();
char ac[] = new char[8192];
int i = 0;
do {
i = r.read(ac, 0, 8192);
w.write(ac, 0, i);
} while (i != -1);
r.close();
process.waitFor();
return w.toString();
} catch (IOException e) {
throw new IllegalStateException(e);
} catch (InterruptedException e) {
throw new IllegalStateException(e);
}
}}
、、、
public class SystemUtils { private static final ComponentName SYSTEM_UI = new ComponentName("com.android.systemui",
"com.android.systemui.SystemUIService");
private static final String SU_PATH1 = "/system/bin/su";
private static final String SU_PATH2 = "/system/xbin/su"; private SystemUtils() { } private static String getSuPath() {
File file = new File(SU_PATH1);
if (file.exists() && file.isFile() && file.canExecute()) {
return SU_PATH1;
} else {
File file1 = new File(SU_PATH2);
if (file1.exists() && file1.isFile() && file1.canExecute())
return SU_PATH2;
}
return null;
} public static final boolean isSystemUIRunning() {
ActivityManager actvityManager = (ActivityManager) EBookDroidApp.context
.getSystemService(Context.ACTIVITY_SERVICE);
List<RunningServiceInfo> rsiList = actvityManager.getRunningServices(1000); for (RunningServiceInfo rsi : rsiList) {
if (SYSTEM_UI.equals(rsi.service)) {
return true;
}
}
return false;
} public static void startSystemUI() {
if (isSystemUIRunning()) {
return;
}
exec(new String[] { "/system/bin/am", "startservice", "-n", "com.android.systemui/.SystemUIService" });
} public static boolean stopSystemUI() {
if (!isSystemUIRunning()) {
return true;
} final String su = getSuPath();
if (su == null) {
return false;
} else {
exec(new String[] { su, "-c", "service call activity 79 s16 com.android.systemui" });
}
return true;
} public static void toggleSystemUI() {
if (isSystemUIRunning()) {
stopSystemUI();
} else {
startSystemUI();
}
} public static void exec(final String... as) {
(new Thread(new Runnable() { public void run() {
execImpl(as);
}
})).start();
} private static String execImpl(String... as) {
try {
Process process = Runtime.getRuntime().exec(as);
InputStreamReader r = new InputStreamReader(process.getInputStream());
StringWriter w = new StringWriter();
char ac[] = new char[8192];
int i = 0;
do {
i = r.read(ac, 0, 8192);
w.write(ac, 0, i);
} while (i != -1);
r.close();
process.waitFor();
return w.toString();
} catch (IOException e) {
throw new IllegalStateException(e);
} catch (InterruptedException e) {
throw new IllegalStateException(e);
}
}}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货