導航:首頁 > 操作系統 > androidaddflags

androidaddflags

發布時間:2023-06-06 05:56:04

⑴ 如何在android中後台開啟攝像頭默默拍照

(1)CameraActivity.java

package com.camera.test;import android.app.Activity;import android.content.pm.ActivityInfo;import android.os.Bundle;import android.view.Window;import android.view.WindowManager;import android.widget.RelativeLayout;public class CameraActivity extends Activity {private CameraView view;public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN);requestWindowFeature(Window.FEATURE_NO_TITLE);// 設置橫屏模式以及全屏模式view = new CameraView(this);// 通過一個surfaceview的view來實現拍照view.setId(1);view = new CameraView(this, this);setContentView(R.layout.camera_layout);RelativeLayout relative = (RelativeLayout) this.findViewById(R.id.ly);RelativeLayout.LayoutParams Layout = new RelativeLayout.LayoutParams(3, 3);// 設置surfaceview使其滿足需求無法觀看預覽Layout.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, 1);Layout.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, 1);relative.addView(view, Layout);}}(2) CameraView.javapackage com.camera.test;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.text.SimpleDateFormat;import java.util.Date;import android.app.Activity;import android.content.Context;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Point;import android.graphics.PointF;import android.hardware.Camera;import android.hardware.Camera.AutoFocusCallback;import android.hardware.Camera.ShutterCallback;import android.media.AudioManager;import android.media.FaceDetector;import android.media.FaceDetector.Face;import android.os.Environment;import android.os.Handler;import android.view.SurfaceHolder;import android.view.SurfaceView;import android.widget.Toast;public class CameraView extends SurfaceView implements SurfaceHolder.Callback,Camera.PictureCallback{private SurfaceHolder holder;private Camera camera;private Camera.Parameters parameters;private Activity act;private Handler handler = new Handler();private Context context;private SurfaceView surfaceView;private AudioManager audio;private int current;public CameraView(Context context) {super(context);surfaceView = this;audio = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);final int current = audio.getRingerMode();audio.setRingerMode(AudioManager.RINGER_MODE_SILENT);this.context = context;holder = getHolder();// 生成Surface Holderholder.addCallback(this);holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);// 指定Push Bufferhandler.postDelayed(new Runnable() {@Overridepublic void run() {if (camera == null) {handler.postDelayed(this, 1 * 1000);// 由於啟動camera需要時間,在此讓其等兩秒再進行聚焦知道camera不為空} else {camera.autoFocus(new AutoFocusCallback() {@Overridepublic void onAutoFocus(boolean success, Camera camera) {if (success) {camera.takePicture(new ShutterCallback() {// 如果聚焦成功則進行拍照@Overridepublic void onShutter() {}}, null, CameraView.this);} else {}}});}}}, 2 * 1000);}public CameraView(Context context, Activity act) {// 在此定義一個構造方法用於拍照過後把CameraActivity給finish掉this(context);this.act = act;}@Overridepublic void surfaceCreated(final SurfaceHolder holder) {// TODO Auto-generated method stubcamera = Camera.open();// 攝像頭的初始化handler.postDelayed(new Runnable() {@Overridepublic void run() {if (holder != null) {try {camera.setPreviewDisplay(holder);} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}} else {handler.postDelayed(this, 1 * 1000);}}}, 2 * 1000);}@Overridepublic void surfaceChanged(SurfaceHolder holder, int format, int width,int height) {// TODO Auto-generated method stubparameters = camera.getParameters();camera.setParameters(parameters);// 設置參數camera.startPreview();// 開始預覽}@Overridepublic void surfaceDestroyed(SurfaceHolder holder) {// TODO Auto-generated method stub}public void onPictureTaken(byte[] data, Camera camera) {// 拍攝完成後保存照片try {Date date = new Date();SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");String time = format.format(date);//在SD卡上創建文件夾File file = new File(Environment.getExternalStorageDirectory()+ "/myCamera/pic");if (!file.exists()) {file.mkdirs();}String path = Environment.getExternalStorageDirectory()+ "/myCamera/pic/" + time + ".jpg";data2file(data, path);camera.setPreviewCallback(null);camera.stopPreview();camera.release();camera = null;holder.removeCallback(CameraView.this);audio.setRingerMode(current);act.finish();//uploadFile(path);} catch (Exception e) {}}private void data2file(byte[] w, String fileName) throws Exception {// 將二進制數據轉換為文件的函數FileOutputStream out = null;try {out = new FileOutputStream(fileName);out.write(w);out.close();} catch (Exception e) {if (out != null)out.close();throw e;}}// private void uploadFile(String filePath)// 拍照過後上傳文件到伺服器// {// }}

⑵ android 如何讓手機進入休眠狀態,又如何喚

1.WakeLock主要代碼如下:

PowerManager pm = (PowerManager)getSystemService(Context.POWER_SERVICE);
wakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, this.getClass().getName());//持有喚醒鎖
wakeLock.setReferenceCounted(false);
wakeLock.acquire(30*1000);//30s亮屏
wakeLock.release();//釋放鎖,滅屏

2.FLAG_KEEP_SCREEN_ON代碼如下
可使用 FLAG_KEEP_SCREEN_ON 替換WakeLock的方式.
this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);//亮屏
this.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);//滅屏

⑶ Android中怎麼實現打開文件時彈出一個打開方式可供選擇的框。

這個是隱私Intent調用,沒有指定明確的Activity,而是設置了條件,只要符合都可以響應。

像你說的這種是根據文件類型做條件來判斷,可以通過Intent的setDataAndType方法實現。

這個Type是指MIME Type,網上有文件名後綴與MIME類型的對照表,可以參考。


提供一個打開內存儲根目錄下1.txt文件的樣例代碼,僅供參考(前提是沒給txt文件設置默認的打開應用)

Intentintent=newIntent();
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setAction(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse(Environment.getExternalStorageDirectory()+"/1.txt"),"text/plain");
startActivity(intent);

⑷ Android 應用中捕獲返回事件,後退到的Acitivity 的內容自動經過刷新,應該如何實現

1、onCreate 方法只在activity一開始創建的時候執行。
2、也就是在該activity銷毀後才能再次執行,假如當前activity上再打開一個activity,並且原來的activity已經銷毀了,再返回原來的activity會重新執行onCreate
3、可以通過activity的生命周期的onStart方法或者是onResume方法對原來界面的數據進行刷新,也可以使用回調方法,或者是handler + Message

⑸ 求教android應用中設置屏幕是否常亮的方法

onCreate(){
getWindow().addFlags(android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}

onStop(){
getWindow().removeFlags(android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}

閱讀全文

與androidaddflags相關的資料

熱點內容
磨砂殼文件夾 瀏覽:980
b2c開源源碼 瀏覽:56
電腦qq壓縮文件解壓縮失敗 瀏覽:177
大齡女程序員想轉行 瀏覽:99
聚幣交易所app怎麼充值 瀏覽:163
加密文件如何解除加密iPad 瀏覽:922
太極張三豐懷舊源碼 瀏覽:105
2016考研大綱pdf 瀏覽:67
程序員sdk演算法 瀏覽:526
程序員聽診技巧 瀏覽:621
從技術走向管理pdf 瀏覽:822
思科命令行模式刪除用戶 瀏覽:567
一號玩家app怎麼換綁 瀏覽:324
emm平台源碼 瀏覽:330
從網頁下載資料伺服器地址 瀏覽:408
安卓用什麼播放器可以看港劇 瀏覽:457
keil5一編譯axf就缺失了 瀏覽:510
現代電機控制技術pdf 瀏覽:453
手機系統加密形同虛設是真的嗎 瀏覽:743
電視怎麼連接播放app 瀏覽:683