拷贝到 在src目录下建立 android.os 包 并新建IHardwareService.aidl 文件
IHardwareService.aidl 文件
package android.os; /** {@hide} */ interface IHardwareService { // obsolete flashlight support boolean getFlashlightEnabled(); void setFlashlightEnabled(boolean on); }
package com.yf210yf.flashlight; import java.lang.reflect.Method; import android.app.Activity; import android.os.Bundle; import android.os.IBinder; import android.os.IHardwareService; import android.view.KeyEvent; import android.view.View; import android.view.View.OnClickListener; import android.widget.ImageButton; public class FlashLightAvtivity extends Activity { private ImageButton imageButton; private int i = 0; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); imageButton = (ImageButton) findViewById(R.id.imageButton); setFlashlightEnabled(false); imageButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if (i == 0) { imageButton.setImageResource(R.drawable.light2); setFlashlightEnabled(true); i = 1; } else { imageButton.setImageResource(R.drawable.light1); setFlashlightEnabled(false); i = 0; } } }); } /** * 设置闪光灯的开启和关闭 */ private void setFlashlightEnabled(boolean isEnable) { 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(isEnable); } catch (Exception e) { e.printStackTrace(); } } public boolean onKeyDown(int kCode,KeyEvent kEvent) { switch(kCode) { case KeyEvent.KEYCODE_BACK: int pid = android.os.Process.myPid() ; android.os.Process.killProcess(pid) ; return true; } return super.onKeyDown(kCode,kEvent); } }
转载请注明出处:CSDN奔跑的蜗牛
效果: