「カメラライトを点ける方法(Xperia)」の編集履歴(バックアップ)一覧はこちら

カメラライトを点ける方法(Xperia)」の最新版変更点

追加された行は青色になります。

削除された行は赤色になります。

+[[Top]] > [[開発]] > カメラライトを点ける方法(Xperia)
 
+*カメラライトを点ける方法(Xperia)
+
+Xperiaのカメラライトをつけるプログラム
+非公開APIを使う。
+http://www.androidjavadoc.com/1.0_r1_src/android/os/IHardwareService.Stub.htmlを参照
+
+1.ライトをつける
+  IHardwareService hardwareService = IHardwareService.Stub.asInterface(ServiceManager.getService("hardware"));
+  hardwareService.setFlashlightEnabled(true); // trueでつける,falseで消す
+
+2.必要なクラスの実装
+・ServiceManager.java
+  package android.os;
+  public class ServiceManager {
+      public static IBinder getService( String serviceName ) {
+          return null;
+      }
+  }
+・Binder.java
+  package android.os;
+  import java.io.FileDescriptor;
+  import java.io.PrintWriter;
+  public abstract class Binder extends Object implements IBinder {
+   public void attachInterface(IInterface owner, String descriptor) {
+   }
+   public static long clearCallingIdentity() {
+  	 return 0;
+   }
+   protected void dump(FileDescriptor filedescriptor, PrintWriter printwriter) {
+   }
+   protected void finalize() {
+   }
+   public static void flushPendingCommands() {
+   }
+   public static int getCallingPid() {
+  	 return 0;
+   }
+   public static int getCallingUid() {
+  	 return 0;
+   }
+   public int getConstantData(Parcel outData) {
+         return 0;
+   }
+   public static IBinder getContextObject() {
+  	 return null;
+   }
+   public static long getLastGcTime() {
+   	 return 0;
+   }
+   public static void joinThreadPool() {
+   }
+   public void linkToDeath(IBinder.DeathRecipient deathrecipient, int i){
+   }
+   protected  boolean	onTransact(int code, Parcel data, Parcel reply, int flags){
+  	 return true;
+   }
+   public boolean pingBinder() {
+  	 return true;
+   }
+   public IInterface queryLocalInterface(String descriptor) {
+  	 return null;
+   }
+   public static void	restoreCallingIdentity(long l) {
+   }
+   public boolean transact(int code, Parcel data, Parcel reply, int flags) {
+  	 return true;
+   }
+   public boolean unlinkToDeath(IBinder.DeathRecipient recipient, int flags) {
+  	 return true;
+   }
+  }
+・IHardwareService.java
+  package android.os;
+  import java.io.FileDescriptor;
+  public interface IHardwareService extends IInterface{
+    public void cancelVibrate();
+    public void enableCameraFlash(int i);
+    public boolean getFlashlightEnabled();
+    public void setFlashlightEnabled(boolean flag);
+    public void vibrate(long l);
+    public void vibratePattern(long[] al, int i, IBinder ibinder);
+    public static class Stub extends Binder {
+      public IBinder asBinder() {
+        return null;
+      }
+      public static IHardwareService asInterface(IBinder obj) {
+        return null;
+      }
+      public boolean onTransact(int code, Parcel data, Parcel reply, int flags) {
+        return true;
+      }
+      @Override
+      public void dump(FileDescriptor fd, String[] args) throws RemoteException {
+        // TODO 自動生成されたメソッド・スタブ
+      }
+      @Override
+      public String getInterfaceDescriptor() throws RemoteException {
+        // TODO 自動生成されたメソッド・スタブ
+        return null;
+      }
+      @Override
+      public boolean isBinderAlive() {
+        // TODO 自動生成されたメソッド・スタブ
+        return false;
+      }
+    }
+  }
+
+[[Top]] > [[開発]] > カメラライトを点ける方法(Xperia)
+**広告