package com.DeviceTest;
|
|
import static android.view.WindowManager.LayoutParams.FLAG_FULLSCREEN;
|
import static android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON;
|
|
import java.io.BufferedInputStream;
|
import java.io.BufferedOutputStream;
|
import java.io.File;
|
import java.io.FileInputStream;
|
import java.io.FileOutputStream;
|
import java.io.IOException;
|
import java.io.InputStream;
|
import java.io.OutputStream;
|
import java.security.Permission;
|
import java.util.ArrayList;
|
import java.util.Arrays;
|
|
import com.DeviceTest.helper.ControlButtonUtil;
|
import com.DeviceTest.helper.SystemUtil;
|
import com.rockchip.dmi.DmiInfo;
|
import com.rockchip.dmi.DmiUtil;
|
|
import android.app.Activity;
|
import android.bluetooth.BluetoothAdapter;
|
import android.bluetooth.BluetoothDevice;
|
import android.content.BroadcastReceiver;
|
import android.content.Context;
|
import android.content.Intent;
|
import android.content.IntentFilter;
|
import android.content.pm.PermissionInfo;
|
import android.os.Bundle;
|
import android.os.Environment;
|
import android.os.Handler;
|
import android.os.Handler.Callback;
|
import android.os.Looper;
|
import android.os.Message;
|
import android.os.Process;
|
import android.util.Log;
|
import android.view.KeyEvent;
|
import android.view.View;
|
import android.view.View.OnClickListener;
|
import android.view.Window;
|
import android.widget.Button;
|
import android.widget.ProgressBar;
|
import android.widget.TextView;
|
|
public class IrdaTestActivity extends Activity implements OnClickListener {
|
private Button sirSend = null;
|
private Button sirReceive = null;
|
private Button firSend = null;
|
private Button firReceive = null;
|
private ProgressBar progressBar = null;
|
|
Handler handler, myHandler;
|
private static final int TEST_SIR_SEND = 0;
|
private static final int TEST_SIR_RECEIVE = 1;
|
private static final int TEST_FIR_SEND = 2;
|
private static final int TEST_FIR_RECEIVE = 3;
|
boolean sirSendPass = false;
|
boolean sirReceivePass = false;
|
boolean firSendPass = false;
|
boolean firReceivePass = false;
|
|
private final static String TEST_IRDA_PATH = DeviceTest.DATA_PATH
|
+ "irda_test";
|
File testIrdaFile = new File(TEST_IRDA_PATH);
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
super.onCreate(savedInstanceState);
|
|
setTitle(getTitle() + "----("
|
+ getIntent().getStringExtra(DeviceTest.EXTRA_TEST_PROGRESS) + ")");
|
// requestWindowFeature(Window.FEATURE_NO_TITLE);
|
getWindow().addFlags(FLAG_FULLSCREEN | FLAG_KEEP_SCREEN_ON);
|
|
setContentView(R.layout.irdatest);
|
|
sirSend = (Button) findViewById(R.id.sir_send);
|
sirReceive = (Button) findViewById(R.id.sir_receive);
|
firSend = (Button) findViewById(R.id.fir_send);
|
firReceive = (Button) findViewById(R.id.fir_receive);
|
|
sirSend.setTag(sirSend.getText());
|
sirReceive.setTag(sirReceive.getText());
|
firSend.setTag(firSend.getText());
|
firReceive.setTag(firReceive.getText());
|
|
sirSend.setOnClickListener(this);
|
sirReceive.setOnClickListener(this);
|
firSend.setOnClickListener(this);
|
firReceive.setOnClickListener(this);
|
|
progressBar = (ProgressBar) findViewById(R.id.irda_progress);
|
|
ControlButtonUtil.initControlButtonView(this);
|
findViewById(R.id.btn_Pass).setVisibility(View.INVISIBLE);
|
|
|
InputStream is = null;
|
OutputStream os = null;
|
try {
|
is = getAssets().open("irda_test");
|
os = new FileOutputStream(testIrdaFile);
|
int data = 0;
|
while (true) {
|
data = is.read();
|
if (data < 0) {
|
break;
|
}
|
os.write(data);
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
} finally {
|
try {
|
if (is != null) {
|
is.close();
|
}
|
if (os != null) {
|
os.close();
|
}
|
if (testIrdaFile.exists()) {
|
SystemUtil.execRootCmd("chmod 777 " + testIrdaFile);
|
}
|
} catch (Exception e) {
|
}
|
}
|
|
|
|
myHandler = new Handler();
|
|
new Thread(new Runnable() {
|
|
public void run() {
|
Looper.prepare();
|
handler = new Handler() {
|
|
public void handleMessage(Message msg) {
|
myHandler.post(new Runnable() {
|
|
public void run() {
|
sirSend.setEnabled(false);
|
sirReceive.setEnabled(false);
|
firSend.setEnabled(false);
|
firReceive.setEnabled(false);
|
}
|
});
|
|
final boolean result;
|
final TextView resultView;
|
switch (msg.arg1) {
|
case TEST_SIR_SEND:
|
result = SystemUtil.execShellCmdForStatue(TEST_IRDA_PATH + " --sir-send") == 0;
|
resultView = sirSend;
|
if (result) {
|
sirSendPass = true;
|
}
|
break;
|
case TEST_SIR_RECEIVE:
|
result = SystemUtil.execShellCmdForStatue(TEST_IRDA_PATH + " --sir-receive") == 0;
|
resultView = sirReceive;
|
if (result) {
|
sirReceivePass = true;
|
}
|
break;
|
case TEST_FIR_SEND:
|
result = SystemUtil.execShellCmdForStatue(TEST_IRDA_PATH + " --fir-send") == 0;
|
resultView = firSend;
|
if (result) {
|
firSendPass = true;
|
}
|
break;
|
case TEST_FIR_RECEIVE:
|
result = SystemUtil.execShellCmdForStatue(TEST_IRDA_PATH + " --fir-receive") == 0;
|
resultView = firReceive;
|
if (result) {
|
firReceivePass = true;
|
}
|
break;
|
|
default:
|
result = false;
|
resultView = null;
|
break;
|
}
|
|
myHandler.post(new Runnable() {
|
|
public void run() {
|
|
sirSend.setEnabled(true);
|
sirReceive.setEnabled(true);
|
firSend.setEnabled(true);
|
firReceive.setEnabled(true);
|
|
progressBar.setVisibility(View.INVISIBLE);
|
resultView.setText(resultView.getTag()
|
.toString()
|
+ ":"
|
+ (result ? "Success" : "Failed"));
|
if (sirSendPass && sirReceivePass
|
&& firSendPass && firReceivePass) {
|
findViewById(R.id.btn_Pass).performClick();
|
}
|
}
|
});
|
}
|
};
|
|
Looper.loop();
|
}
|
}).start();
|
|
|
|
}
|
|
protected void onStop() {
|
super.onStop();
|
|
SystemUtil.killProcessByPath(TEST_IRDA_PATH);
|
|
if (testIrdaFile.exists()) {
|
testIrdaFile.delete();
|
}
|
}
|
|
protected void onResume() {
|
super.onResume();
|
}
|
|
public void onPause() {
|
super.onPause();
|
}
|
|
public void onClick(View v) {
|
progressBar.setVisibility(View.VISIBLE);
|
|
Message message = handler.obtainMessage();
|
if (v == sirSend || v == sirReceive) {
|
if (v == sirSend) {
|
message.arg1 = TEST_SIR_SEND;
|
} else {
|
message.arg1 = TEST_SIR_RECEIVE;
|
}
|
} else {
|
if (v == firSend) {
|
message.arg1 = TEST_FIR_SEND;
|
} else {
|
message.arg1 = TEST_FIR_RECEIVE;
|
}
|
}
|
((TextView) v).setText(v.getTag().toString() + ":Testing");
|
|
handler.sendMessage(message);
|
}
|
|
public boolean dispatchKeyEvent(KeyEvent event) {
|
if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
|
return false;
|
}
|
return super.dispatchKeyEvent(event);
|
}
|
|
}
|