在android2.3中如何使用IHardwareService 打开LED闪光灯用别的方法也可以,希望高手指教。

解决方案 »

  1.   

    package camera.light.test;import java.lang.reflect.Method;
    import android.app.Activity;
    import android.os.Bundle;
    import android.os.IBinder;
    import android.os.IHardwareService;public class LightTest1Activity extends Activity {
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            
            
    try
    {
    Method method = Class.forName("android.os.ServiceManager").getMethod("getService", String.class);
    IBinder binder = (IBinder) method.invoke(null, new Object[] { "hardware" }); IHardwareService localhardwareservice = IHardwareService.Stub.asInterface(binder);
    localhardwareservice.setFlashlightEnabled(true);
    }
    catch (Exception e)
    {
    e.printStackTrace();
    }
        }
    }
      

  2.   

    import android.os.IHardwareService;注意这个,需要把 SDK 1.6 版以前的 IHardwareService.aidl 拷贝到 src 的 android.os 目录下。
      

  3.   

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="camera.light.test"
          android:versionCode="1"
          android:versionName="1.0">
        <uses-sdk android:minSdkVersion="7" />
        <uses-permission android:name="android.permission.FLASHLIGHT" />
        <uses-permission android:name="android.permission.HARDWARE_TEST" />        <application android:icon="@drawable/icon" android:label="@string/app_name">
            <activity android:name=".LightTest1Activity"
                      android:label="@string/app_name">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>    </application>
    </manifest>
    <!-- Notice the permissions metioned above you have to use -->