00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 package org.openmobileis.embedded.util;
00027
00028 import org.openmobileis.common.context.ApplicationContext;
00029 import org.openmobileis.common.context.ApplicationContextManager;
00030 import org.openmobileis.common.context.Plateform;
00031 import org.openmobileis.common.util.exception.OpenMISException;
00032
00041 public class SystemAPI {
00042 private static SystemAPI manager;
00043
00044 private static ISystemAPI api;
00045
00046 private SystemAPI() {
00047
00048 if (api == null){
00049 try {
00050 ApplicationContext context = ApplicationContextManager.getManager().getApplicationContext();
00051 if (context.getPlateform().getOS().equals(Plateform.POCKETPCOS)) {
00052 api = new PPCSystemAPI();
00053 } else {
00054 api = new DefaultSystemAPI();
00055 }
00056 } catch (Throwable exi) {
00057 exi.printStackTrace();
00058 }
00059 }
00060 }
00061
00062 public static void registerSystemAPI(ISystemAPI api) {
00063 SystemAPI.api = api;
00064 }
00065
00066 public static SystemAPI getManager() {
00067 if (manager == null) {
00068 manager = new SystemAPI();
00069 ApplicationContextManager.getManager().addManager(manager);
00070 }
00071 return manager;
00072 }
00073
00079 public int execProgramAndWait(String path, String args) throws OpenMISException {
00080 return api.execProgramAndWait(path, args);
00081 }
00082
00088 public int execProgram (String path, String args) throws OpenMISException {
00089 return api.execProgram(path, args);
00090 }
00091
00096 public long currentTimeInMillis() {
00097 return System.currentTimeMillis();
00098 }
00099
00100 public String getSystemUniqueID(){
00101 return api.getSystemUniqueID();
00102 }
00103
00104 public static void main (String[] args) {
00105 try {
00106 int i = SystemAPI.getManager().execProgramAndWait("\\Windows\\calc.exe","");
00107 System.out.println(i);
00108 i = SystemAPI.getManager().execProgram("\\Windows\\calendar.exe","");
00109 System.out.println(i);
00110 } catch (Exception e) {
00111 e.printStackTrace();
00112 }
00113 }
00114 }