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
00040 public class SystemAPI {
00041 private static SystemAPI manager;
00042
00043 private static ISystemAPI api;
00044
00045 private SystemAPI() {
00046
00047 if (api == null){
00048 try {
00049 ApplicationContext context = ApplicationContextManager.getManager().getApplicationContext();
00050 if (context.getPlateform().getOS().equals(Plateform.POCKETPCOS) || context.getPlateform().getOS().equals(Plateform.WINCE)) {
00051 api = new PPCSystemAPI();
00052 } else {
00053 api = new DefaultSystemAPI();
00054 }
00055 } catch (Throwable exi) {
00056 exi.printStackTrace();
00057 }
00058 }
00059 }
00060
00061 public static void registerSystemAPI(ISystemAPI api) {
00062 SystemAPI.api = api;
00063 }
00064
00065 public static ISystemAPI getManager() {
00066 if (manager == null) {
00067 manager = new SystemAPI();
00068 ApplicationContextManager.getManager().addManager(manager);
00069 }
00070 return api;
00071 }
00072
00073 public static void main (String[] args) {
00074 try {
00075 int i = SystemAPI.getManager().execProgramAndWait("\\Windows\\calc.exe","");
00076 System.out.println(i);
00077 i = SystemAPI.getManager().execProgram("\\Windows\\calendar.exe","");
00078 System.out.println(i);
00079 } catch (Exception e) {
00080 e.printStackTrace();
00081 }
00082 }
00083 }