「カメラライトを点ける方法(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)
**広告