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))?? //判斷設(shè)備是否支持閃光燈
{
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"/>
需要加上權(quán)限
注意:并不是所有的設(shè)備都支持網(wǎng)上還有一種說法是調(diào)用系統(tǒng)隱藏api,不過我試了沒反應(yīng),可能是系統(tǒng)版本問題,備份一下
用IHardwareService直接控制Android1.5以前是直接提供這個(gè)接口的,之后呢,需要我們自己來做一下。
在你的項(xiàng)目中新建一個(gè)包Android.os,新建一個(gè)IHardwareService.aidl文件,內(nèi)容如下:
package android.os;
/** {@hide} */
interface IHardwareService
{
// obsolete flashlight support
boolean getFlashlightEnabled();
void setFlashlightEnabled(boolean on);
}
然后在你的程序中引入
import android.os.IHardwareService;
/**
* 設(shè)置閃光燈的開啟和關(guān)閉
* @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();
}
}
這樣就可以開啟閃光燈了。要使用的權(quán)限:
相關(guān)閱讀:
貪吃蛇游戲C++命令行版實(shí)例代碼
Linux系統(tǒng)怎么調(diào)整swap分區(qū)大小?
Augularjs-起步詳解
獲取pc電腦和平板物理地址
js處理表格對table進(jìn)行修飾
Linux系統(tǒng)中如何在PDF中嵌入LaTex中的所有字體
html+js實(shí)現(xiàn)動(dòng)態(tài)顯示本地時(shí)間
Win10系統(tǒng)下IE11瀏覽器怎么重置? Windows10重置IE11瀏覽器圖文教程
HTML5 新舊語法標(biāo)記對我們有什么好處
JSP中使用JSTL按不同條件輸出內(nèi)容的方法
oracle關(guān)鍵字作為字段名使用方法
Win7玩游戲提示“顯卡器驅(qū)動(dòng)程序已停止響應(yīng)”問題排查方法
asp.net微信開發(fā)(開發(fā)者接入)
jquery中EasyUI實(shí)現(xiàn)同步樹
總結(jié)
以上是生活随笔為你收集整理的java闪光灯手电筒_Android_Android 开启闪光灯做手电筒的详解,复制代码 代码如下:public class H - phpStudy...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数字电视业务PSI/SI学习
- 下一篇: Go初始化变量的招式