CamareStress main
package com.gigaset.camer;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import com.example.gigaset.R;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.graphics.Matrix;
import android.graphics.PixelFormat;
import android.hardware.Camera;
import android.hardware.Camera.AutoFocusCallback;
import android.hardware.Camera.CameraInfo;
import android.hardware.Camera.Parameters;
import android.hardware.Camera.PictureCallback;
import android.hardware.Camera.ShutterCallback;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.SurfaceHolder;
import android.view.SurfaceHolder.Callback;
import android.view.SurfaceView;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.ToggleButton;
/**
* @author toby.he 针对相机的压力功能测试
*
*/
@SuppressWarnings({ "deprecation" })
public class CamareStress extends Activity implements Callback, OnClickListener {
protected String TAG = "CamareStress";
private EditText time = null;
private EditText jiange = null;
private Button startButton = null;
private Camera mCamera;
private SurfaceView mSurfaceView;
private SurfaceHolder holder;
/** 是否在运行 */
private boolean mPreviewRunning = false;
Context context = CamareStress.this;
private ToggleButton tButton = null;
private ToggleButton changButton = null;
private Button pauseButton = null;
private Button stopButton = null;
Bitmap bitmap;
private int cameraPostion = 1; // 1代表后置 ,0 代表前置摄像头
/** 进度条 */
private ProgressBar progressBar = null;
/** 结果文本 */
private TextView resultTextView = null;
private int COUNT = 1; // 次数
private int DELAY = 1; // 间隔延时
// 自定义Handler信息代码,用以作为识别事件处理
protected static final int GUI_NOTIFIER = 0;
protected static final int GUI_STOP = 1;
protected static final int GUI_SUCCESS = 2;
// 进度条计数器
private int intcount = 0;
/** thread handler */
Handler threadHandler;
/** 总计次数 */
private int countall = 0;
/** 文本信息 */
private String text = null;
/** 间隔时间 */
private String jiangeString = null;
CameraInfo cameraInfo;
@Override
protected final void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
setContentView(R.layout.camarestress);
findView();
holder = mSurfaceView.getHolder();
holder.addCallback(this);
holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
this.threadHandler = new Handler();
/** 自动前后切换 */
changButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (changButton.isChecked()) {
Toast.makeText(getApplicationContext(), "手动状态切换到自动状态", Toast.LENGTH_SHORT).show();
tButton.setEnabled(false);
// resultTextView.setText("前后摄像头切换拍照");
} else {
Toast.makeText(getApplicationContext(), "自动状态切换到手动状态", Toast.LENGTH_SHORT).show();
tButton.setEnabled(true);
// changButton.setEnabled(false);
}
}
});
}
@Override
protected void onPause() {
super.onPause();
}
// 控件
private void findView() {
/** 前后置摄像头切换 */
this.tButton = (ToggleButton) findViewById(R.id.toggleButton1);
tButton.setOnClickListener(this);
this.jiange = (EditText) findViewById(R.id.jiange_ET); // 间隔
this.time = (EditText) findViewById(R.id.times_ET); // 次数
time.setText("1");
jiange.setText("3");
this.progressBar = (ProgressBar) findViewById(R.id.progressBar1);
progressBar.setProgress(0);
this.resultTextView = (TextView) findViewById(R.id.result);
resultTextView.setText("相机压力测试");
resultTextView.setGravity(Gravity.CENTER);
this.startButton = (Button) findViewById(R.id.start1); // 开始拍照
this.startButton.setOnClickListener(this);
this.pauseButton = (Button) findViewById(R.id.pause); //
pauseButton.setOnClickListener(this);
this.stopButton = (Button) findViewById(R.id.stop); // 停止
stopButton.setOnClickListener(this);
this.changButton = (ToggleButton) findViewById(R.id.toggleButton2);
// changButton.setVisibility(View.INVISIBLE);
changButton.setOnClickListener(this); // 自动切换
mSurfaceView = (SurfaceView) findViewById(R.id.surfaceView1);
// 点击对焦
mSurfaceView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(final View v) {
mCamera.autoFocus(mAutoFocusCallBack);
}
});
}
/** 按钮监听 */
public void onClick(View view) {
switch (view.getId()) {
case R.id.start1:
text = time.getText().toString();
jiangeString = jiange.getText().toString();
if (text.equals("")) {
COUNT = 1;
} else {
COUNT = Integer.parseInt(text);
countall = COUNT;
Log.i(TAG, "count的值确定-->" + COUNT);
}
if (jiangeString.equals("")) {
DELAY = 3;
} else {
DELAY = Integer.parseInt(jiangeString);
Log.i(TAG, "DELAY:" + DELAY);
if (DELAY < 3) {
DELAY = 3;
}
Log.i(TAG, "DELAY的值是-->" + DELAY);
}
/** 判断是否处于自动切换状态 */
if (tButton.isEnabled()) {
// 添加一个输入键盘隐藏
InputMethodManager im = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
im.hideSoftInputFromWindow(getCurrentFocus().getApplicationWindowToken(),
InputMethodManager.HIDE_NOT_ALWAYS);
threadHandler.postDelayed(startRunnable, DELAY * 1000L);
} else {
// 自动前后切换
threadHandler.postDelayed(autoRunnable, DELAY * 1000L);
}
break;
case R.id.toggleButton1:
// 切换前后摄像头
int cameraCount = 0;
CameraInfo cameraInfo = new CameraInfo();
cameraCount = Camera.getNumberOfCameras();// 得到摄像头的个数
for (int i = 0; i < cameraCount; i++) {
Camera.getCameraInfo(i, cameraInfo); // 得到每一个摄像头的信息
if (cameraPostion == 1) {
// 现在是后置,变更为前置
if (cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {
/** * 记得释放camera,方便其他应用调用 */
releaseCamera();
// 打开当前选中的摄像头
mCamera = Camera.open(i);
// 通过surfaceview显示取景画面
setStartPreview(mCamera, holder);
mCamera.setDisplayOrientation(90);
cameraPostion = 0;
Log.e(TAG, "当前是前置,打开的摄像头是-->" + i);
break;
}
} else {
// 现在是前置, 变更为后置
if (cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_BACK) {
/** * 记得释放camera,方便其他应用调用 */
releaseCamera();
mCamera = Camera.open(i);
setStartPreview(mCamera, holder);
mCamera.setDisplayOrientation(90);
cameraPostion = 1;
Log.e(TAG, "后置摄像头,打开摄像头的是-->" + i);
break;
}
}
}
break;
case R.id.pause:
Toast.makeText(getApplicationContext(), "暂停", Toast.LENGTH_SHORT).show();
break;
case R.id.stop:
Toast.makeText(getApplicationContext(), "stop", Toast.LENGTH_SHORT).show();
Message message = new Message();
message.what = GUI_STOP;
msgHandler.sendMessage(message);
threadHandler.removeCallbacks(autoRunnable);
Log.i(TAG, " startRun & autoRun stop");
break;
}
}
/**
* 单摄像头测试线程
**/
Runnable startRunnable = new Runnable() {
@Override
public void run() {
try {
takepicture();
} catch (InterruptedException e) {
e.printStackTrace();
}
intcount = COUNT - 1;
COUNT--;
Log.i(TAG, " startRun intcount的值是:" + intcount);
Message msg = new Message();
COUNT = intcount;
if (intcount > 0) {
threadHandler.postDelayed(startRunnable, DELAY * 1000);
msg.what = GUI_NOTIFIER;
msgHandler.sendMessage(msg);
return;
} else {
msg.what = GUI_SUCCESS;
msgHandler.sendMessage(msg);
}
threadHandler.removeCallbacks(startRunnable);
}
};
// 拍照
private void takepicture() throws InterruptedException {
if (mPreviewRunning && mCamera != null) {
Log.e(TAG, "takephoto拍照调用");
// mCamera.autoFocus(mAutoFocusCallBack);
mCamera.takePicture(shutterCallback, null, jpegCallback);
} else {
Toast.makeText(getApplicationContext(), "takephoto 调用失败", Toast.LENGTH_SHORT).show();
}
}
// 消息处理
@SuppressLint("HandlerLeak")
Handler msgHandler = new Handler() {
public void handleMessage(android.os.Message msg) {
switch (msg.what) {
case GUI_NOTIFIER:
progressBar.setProgress(countall - intcount + 1);
progressBar.setMax(countall);
Log.i(TAG, "GUI_STOP_NOTIFIER 的intcount-->" + intcount);
resultTextView.setText(
"总执行次数:" + countall + " 当前执行到:" + (countall - intcount) + "T " + "间隔时间:" + DELAY + "S");
resultTextView.setTextSize(18);
break;
case GUI_SUCCESS:
resultTextView.setText("测试结果 :成功");
resultTextView.setTextSize(25);
resultTextView.setTextColor(Color.GREEN);
resultTextView.setGravity(Gravity.CENTER);
break;
case GUI_STOP:
threadHandler.removeCallbacks(startRunnable);
threadHandler.removeCallbacks(autoRunnable);
resultTextView.setText("停止拍照");
resultTextView.setGravity(Gravity.CENTER);
Log.v(TAG, "Runnable线程停止");
break;
}
};
};
// 释放 相机
private void releaseCamera() {
if (mCamera != null) {
mCamera.setPreviewCallback(null);
mCamera.stopPreview();// 停掉原来摄像头的预览
mCamera.release();
mCamera = null;
}
}
/**
* 设置camera显示取景画面,并预览
*
* @param camera
*/
private void setStartPreview(Camera camera, SurfaceHolder holder) {
try {
camera.setPreviewDisplay(holder);
camera.startPreview();
} catch (IOException e) {
Log.d(TAG, "Error starting camera preview: " + e.getMessage());
}
}
/**
* 自动切换到后摄并拍照
*/
Runnable autoRunnable = new Runnable() {
@Override
public void run() {
Log.e(TAG, "AutoRunable Start ");
autotakepic();
intcount = COUNT - 1;
COUNT--;
Log.e(TAG, "AutoRunnable intcount的值是:" + intcount);
threadHandler.postDelayed(autoRunnable2, 3000);
threadHandler.removeCallbacks(autoRunnable);
}
};
/**
* 自动切换到前摄并拍照
*/
Runnable autoRunnable2 = new Runnable() {
@Override
public void run() {
autotakepic2();
Message msg = new Message();
if (intcount > 0) {
threadHandler.postDelayed(autoRunnable, DELAY * 1000);
msg.what = GUI_NOTIFIER;
msgHandler.sendMessage(msg);
return;
} else {
msg.what = GUI_SUCCESS;
msgHandler.sendMessage(msg);
threadHandler.removeCallbacks(autoRunnable2);
}
}
};
/** 自动切换到后摄拍照 */
private void autotakepic() {
/** camera数量 */
cameraPostion = 1;
cameraInfo = new CameraInfo();
Camera.getCameraInfo(0, cameraInfo);
releaseCamera();
mCamera = Camera.open(0);
setStartPreview(mCamera, holder);
mCamera.setDisplayOrientation(90);
try {
Thread.sleep(3000);
mCamera.autoFocus(mAutoFocusCallBack);
takepicture();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
/** 自动切换到前摄拍照 */
private void autotakepic2() {
/** camera数量 */
cameraInfo = new CameraInfo();
cameraPostion = 0;
releaseCamera();
Camera.getCameraInfo(1, cameraInfo);
mCamera = Camera.open(1);
setStartPreview(mCamera, holder);
mCamera.setDisplayOrientation(90);
try {
Thread.sleep(3000);
mCamera.autoFocus(mAutoFocusCallBack);
takepicture();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
initCamera();
}
/**
* 初始化摄像头
*/
private void initCamera() {
if (mPreviewRunning) {
mCamera.stopPreview(); // 释放相机资源
}
if (null != mCamera) {
Parameters params = mCamera.getParameters();
params.setPictureFormat(PixelFormat.JPEG);// 设置图片格式
mCamera.setDisplayOrientation(90);
mCamera.setParameters(params);
try {
mCamera.setPreviewDisplay(holder); // 设置相机获取的图片在holder中显示
} catch (IOException e) {
e.printStackTrace();
}
mCamera.startPreview();
mPreviewRunning = true;
}
}
// 自动对焦功能
private AutoFocusCallback mAutoFocusCallBack = new AutoFocusCallback() {
@Override
public void onAutoFocus(boolean success, Camera camera) {
if (success) {
Log.e("AutoFocusCallback", "AutoFocusCallback" + success);
Camera.Parameters Parameters = mCamera.getParameters();
Parameters.setPictureFormat(PixelFormat.JPEG);// 设置图片格式
mCamera.setParameters(Parameters);
} else {
Log.e(TAG, "对焦失败.......");
}
}
};
@Override
public void surfaceCreated(SurfaceHolder holder) {
mCamera = Camera.open();
Log.e(TAG, "打开摄像头");
try {
mCamera.setPreviewDisplay(holder);
Log.e(TAG, "SurfaceHolder.Callback: surfaceCreated!");
} catch (IOException e) {
if (null != mCamera) {
mCamera.release();
mCamera = null;
}
e.printStackTrace();
}
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
Log.e(TAG, "surfacedestoryed");
mCamera.stopPreview();
mPreviewRunning = false;
mCamera.release();
mCamera = null;
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
threadHandler.removeCallbacks(startRunnable);
threadHandler.removeCallbacks(autoRunnable);
threadHandler.removeCallbacks(autoRunnable2);
Log.v(TAG, "onkeydown keycode-back");
CamareStress.this.finish();
}
return super.onKeyDown(keyCode, event);
}
@Override
protected void onDestroy() {
CamareStress.this.finish();
super.onDestroy();
}
private ShutterCallback shutterCallback = new ShutterCallback() {
public void onShutter() {
Log.e("ShutterCallback", "…onShutter…");
}
};
/* 给定一个Bitmap,进行保存 */
public void saveJpeg(Bitmap bm) {
String savePath = null;
if (intcount <= 1500) {
savePath = Environment.getExternalStorageDirectory().getPath() + File.separator + "testphoto";
Log.e(TAG, "save bitmap的存储路径是 :" + savePath + "," + "incount的值是:" + intcount);
File folder = new File(savePath);
if (!folder.exists()) // 如果文件夹不存在则创建
{
folder.mkdir();
}
} else if (intcount >= 1501) {
savePath = Environment.getExternalStorageDirectory().getPath() + File.separator + "testphoto"
+ String.valueOf(1000);
Log.e(TAG, "save bitmap的存储路径是 :" + savePath + "," + "incount的值是:" + intcount);
File folder2 = new File(savePath);
if (!folder2.exists()) // 如果文件夹不存在则创建
{
folder2.mkdir();
}
}
long dataTake = System.currentTimeMillis();
String jpegName = savePath + File.separator + dataTake + ".jpg";
Log.e(TAG, "saveJpeg:jpegName--" + jpegName);
// File jpegFile = new File(jpegName);
try {
FileOutputStream fout = new FileOutputStream(jpegName);
BufferedOutputStream bos = new BufferedOutputStream(fout);
bm.compress(Bitmap.CompressFormat.JPEG, 100, bos); // 压缩比例
bos.flush();
bos.close();
mCamera.stopPreview();
mCamera.startPreview();
bm.recycle();
Log.e(TAG, "saveJpeg:存储完毕!");
// Log.e(TAG, "拍照所需时间为-->" + (System.currentTimeMillis() -
// phototime)
// / 1000);
} catch (IOException e) {
Log.e(TAG, "saveJpeg:存储失败!");
e.printStackTrace();
}
}
private PictureCallback jpegCallback = new PictureCallback() {
public void onPictureTaken(byte[] _data, Camera _camera) {
Log.e(TAG, "…onPictureTaken…");
if (_data != null) {
bitmap = BitmapFactory.decodeByteArray(_data, 0, _data.length);
if (mPreviewRunning) {
mCamera.stopPreview();
mPreviewRunning = false;
}
}
Log.e(TAG, "_data!:" + (_data != null));
Log.e(TAG, "bitmap:" + (bitmap != null));
Matrix matrix = new Matrix();
matrix.postRotate((float) 90.0);
if (cameraPostion == 0) {
matrix.postRotate((float) -180.0);
}
Bitmap rotaBitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, false);
// 保存图片到sdcard
if (null != rotaBitmap) {
saveJpeg(rotaBitmap);
}
Log.e(TAG, "rotaBitmap!: " + (rotaBitmap != null));
// 再次进入预览
mCamera.startPreview();
mPreviewRunning = true;
}
};
}
camarestress.xml 布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/times_TV"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/times" />
<EditText
android:id="@+id/times_ET"
android:layout_width="48dp"
android:layout_height="wrap_content"
android:layout_weight="773973.44"
android:ems="10"
android:inputType="number" >
<requestFocus />
</EditText>
<Button
android:id="@+id/start1"
android:layout_width="70dp"
android:layout_height="wrap_content"
android:text="@string/start" />
<Button
android:id="@+id/stop"
android:layout_width="70dp"
android:layout_height="wrap_content"
android:text="停止" />
<Button
android:id="@+id/pause"
android:layout_width="70dp"
android:layout_height="wrap_content"
android:visibility="invisible" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@+id/qiehuan"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/delay" />
<EditText
android:id="@+id/jiange_ET"
android:layout_width="43dp"
android:layout_height="wrap_content"
android:layout_weight="0.09"
android:ems="10"
android:inputType="number" />
<ToggleButton
android:id="@+id/toggleButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textOff="后置"
android:textOn="前置" />
<ToggleButton
android:id="@+id/toggleButton2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textOff="非自动"
android:textOn="自动"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<SurfaceView
android:id="@+id/surfaceView1"
android:layout_width="match_parent"
android:layout_height="210dp"
android:layout_weight="0.70" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<ProgressBar
android:id="@+id/progressBar1"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="34dp" />
<TextView
android:id="@+id/result"
android:layout_width="match_parent"
android:layout_height="44dp" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
Android mainifest
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.gigaset"
android:versionCode="2"
android:versionName="@string/version" >
<!-- android:sharedUserId="android.uid.system" -->
<!-- android:sharedUserId="android.uid.system" -->
<!-- <uses-permission android:name="android.permission.REBOOT" /> -->
<!-- <uses-permission android:name="android.permission.MODIFY_PHONE_STATE" /> -->
<uses-sdk
android:minSdkVersion="15"
android:targetSdkVersion="21" />
<!-- 支持多种分辨率 -->
<supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="true"
android:resizeable="true"
android:smallScreens="true" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<uses-permission android:name="android.permission.READ_LOGS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MOUNT_FORMAT_FILESYSTEMS" />
<!-- 授予该程序录制声音的权限 -->
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="WRITE_SECURE_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<!-- 位置信息相关 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<application
android:allowBackup="true"
android:icon="@drawable/logo"
android:label="@string/app_name"
android:theme="@style/_gigasettheme" >
<activity
android:name="com.gigaset.main.MainActivity"
android:label="@string/app_name"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.gigaset.main.GridActivity"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.gigaset.camer.CamareStress"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.gigaset.main.HelpActivity"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.gigaset.lcd.DrawPaintMainActivity"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.gigaset.mediaRec.MediaVedioAct"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.gigaset.server.AgentSerActivity"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.gigaset.webtest.WebTest"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustUnspecified|stateHidden" >
</activity>
<activity
android:name="com.gigaset.manager.MyTelephoneManager"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.gigaset.mediaRecord.MediaRecActivity"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.gigaset.MobileDataStress.MobileStress"
android:screenOrientation="portrait" >
</activity>
<!-- 数据连接 -->
<activity
android:name="com.gigaset.DataCon.DataConnectAct"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.gigaset.gps.GpsStressMain"
android:screenOrientation="portrait" >
</activity>
<!-- 日志服务 -->
<service android:name="com.gigaset.main.LogService" >
</service>
<!-- agentser -->
<service android:name="com.gigaset.server.AgentServ" >
</service>
<!-- gigaset server -->
<service android:name="com.gigaset.main.GigasetSer" >
</service>
<!-- <action android:name="android.intent.action.USER_PRESENT" /> -->
<receiver android:name="com.gigaset.manager.ConnectionChangeRec" >
<intent-filter>
<action android:name="android.intent.action.CONTENT_CHANGED" />
<action android:name="com.gigasetser.broadcast" />
</intent-filter>
</receiver>
<activity
android:name="com.gigaset.MobileDataStress.MobileDataTestActivity"
android:label="@string/title_activity_mobile_data_test" >
</activity>
</application>
</manifest>