Advertisement
goroh_kun

リフレクション使ってNetworkManagementServiceに接続

Nov 6th, 2011
992
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5 1.25 KB | None | 0 0
  1.     private void test1() {
  2.         try {
  3.             Class ServiceManager = Class.forName("android.os.ServiceManager");
  4.             Method getService_method = ServiceManager.getMethod("getService", new Class[]{String.class});
  5.             System.out.println("ServiceManager="+ServiceManager);
  6.             System.out.println("getService_method="+getService_method);
  7.             IBinder b = (IBinder)getService_method.invoke(null, new Object[]{"network_management"});
  8.             System.out.println("b="+b);
  9.             Class stub = Class.forName("android.os.INetworkManagementService$Stub");
  10.             System.out.println("stub="+stub);
  11.             Method asInterface_method = stub.getMethod("asInterface", new Class[]{IBinder.class});
  12.             System.out.println("asInterface_method="+asInterface_method);
  13.             Object nw = asInterface_method.invoke(null, new Object[] {b});
  14.             System.out.println("nw="+nw);
  15.             Method startTethering_method = nw.getClass().getMethod("startTethering", new Class[]{String[].class});
  16.             System.out.println("startTethering=" + startTethering_method);
  17.             char [] bytes = { /* ここに送りたいコマンドを バイト列で記載する */ };
  18.             String[] param1 = {new String(bytes)};
  19.             startTethering_method.invoke(nw, new Object[] {param1});
  20.            
  21.         } catch (Exception e) {
  22.             e.printStackTrace();
  23.         }
  24.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement