java闪光灯手电筒_Android_Android 开启闪光灯做手电筒的详解,复制代码 代码如下:public class H - phpStudy...
Android 開啟閃光燈做手電筒的詳解
public class HandLightActivity extends Activity implements OnClickListener{
private ToggleButton toggleButton;
private Camera m_Camera;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.handlight);
toggleButton = (ToggleButton)this.findViewById(R.id.toggleButton1);
toggleButton.setOnClickListener(this);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
@Override
public void onClick(View v) {
ToggleButton tb = (ToggleButton)v;
if(!tb.isChecked()){
PackageManager pm= this.getPackageManager();
FeatureInfo[]? features=pm.getSystemAvailableFeatures();
for(FeatureInfo f : features)
{
if(PackageManager.FEATURE_CAMERA_FLASH.equals(f.name))?? //判斷設備是否支持閃光燈
{
if ( null == m_Camera )
{
m_Camera = Camera.open();
}
Camera.Parameters parameters = m_Camera.getParameters();
parameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
m_Camera.setParameters( parameters );
m_Camera.startPreview();
toggleButton.setBackgroundColor(0x30ffffff);
}
}
}else{
if ( m_Camera != null )
{
m_Camera.stopPreview();
m_Camera.release();
m_Camera = null;
}
toggleButton.setBackgroundColor(0xffffffff);
}
}
}
handlight.xml
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
android:layout_width="match_parent"
android:layout_height="match_parent"
android:checked="true"
android:text="ToggleButton"/>
需要加上權限
注意:并不是所有的設備都支持網上還有一種說法是調用系統隱藏api,不過我試了沒反應,可能是系統版本問題,備份一下
用IHardwareService直接控制Android1.5以前是直接提供這個接口的,之后呢,需要我們自己來做一下。
在你的項目中新建一個包Android.os,新建一個IHardwareService.aidl文件,內容如下:
package android.os;
/** {@hide} */
interface IHardwareService
{
// obsolete flashlight support
boolean getFlashlightEnabled();
void setFlashlightEnabled(boolean on);
}
然后在你的程序中引入
import android.os.IHardwareService;
/**
* 設置閃光燈的開啟和關閉
* @param isEnable
* @author linc
* @date 2012-3-18
*/
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();
}
}
這樣就可以開啟閃光燈了。要使用的權限:
相關閱讀:
貪吃蛇游戲C++命令行版實例代碼
Linux系統怎么調整swap分區大小?
Augularjs-起步詳解
獲取pc電腦和平板物理地址
js處理表格對table進行修飾
Linux系統中如何在PDF中嵌入LaTex中的所有字體
html+js實現動態顯示本地時間
Win10系統下IE11瀏覽器怎么重置? Windows10重置IE11瀏覽器圖文教程
HTML5 新舊語法標記對我們有什么好處
JSP中使用JSTL按不同條件輸出內容的方法
oracle關鍵字作為字段名使用方法
Win7玩游戲提示“顯卡器驅動程序已停止響應”問題排查方法
asp.net微信開發(開發者接入)
jquery中EasyUI實現同步樹
總結
以上是生活随笔為你收集整理的java闪光灯手电筒_Android_Android 开启闪光灯做手电筒的详解,复制代码 代码如下:public class H - phpStudy...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数字电视业务PSI/SI学习
- 下一篇: 127.0.0.1 zxt.php_ge