start-activity-by-securecode
来源:互联网 发布:p相片软件 编辑:程序博客网 时间:2024/05/16 12:16
1.
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.code"
android:versionCode="1"
android:versionName="1.0"
android:sharedUserId="android.uid.system" >
<uses-sdk
android:minSdkVersion="19"
android:targetSdkVersion="21" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.code.CCTMainActivity"
android:label="Camera Current Test Program">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<!-- *#*#2287#*#* -->
<!--
<data
android:host="2287"
android:scheme="android_secret_code" />
-->
</intent-filter>
</activity>
<receiver android:name="CCTPReceiver">
<intent-filter>
<action android:name="android.provider.Telephony.SECRET_CODE"/>
<!-- *#*#2287#*#* -->
<data
android:host="2287"
android:scheme="android_secret_code" />
</intent-filter>
</receiver>
</application>
</manifest>
2.
CCTPReceiver.java
package com.example.code;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
public class CCTPReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
Log.e("GCCTPR","CCTPReceiver:onReceive()");
if (intent.getAction().equals("android.provider.Telephony.SECRET_CODE")) {
Log.e("GCCTPR","CCTPReceiver:onReceive():SECRET_CODE in");
Intent i = new Intent(Intent.ACTION_MAIN);
i.setClass(context, CCTMainActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
}
}
}
3.
CCTMainActivity.java
package com.example.code;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.os.SystemProperties;
public class CCTMainActivity extends Activity {
//RadioGroup
private RadioGroup MainAfRadioGroup = null;
private RadioGroup MainFpsZsdPreRadioGroup = null;
private RadioGroup MainFpsSlimVidRadioGroup = null;
private RadioGroup MainFpsHsVidRadioGroup = null;
//Sub
private RadioGroup SubAfRadioGroup = null;
private RadioGroup SubFpsZsdPreRadioGroup = null;
private RadioGroup SubFpsSlimVidRadioGroup = null;
private RadioGroup SubFpsHsVidRadioGroup = null;
//RadioButton
private RadioButton MainAfMinRadioButton = null;
private RadioButton MainAfMaxRadioButton = null;
private RadioButton MainFpsZsdPreMinRadioButton = null;
private RadioButton MainFpsZsdPreMaxRadioButton = null;
private RadioButton MainFpsSlimVidMinRadioButton = null;
private RadioButton MainFpsSlimVidMaxRadioButton = null;
private RadioButton MainFpsHsVidMinRadioButton = null;
private RadioButton MainFpsHsVidMaxRadioButton = null;
//Sub
private RadioButton SubAfMinRadioButton = null;
private RadioButton SubAfMaxRadioButton = null;
private RadioButton SubFpsZsdPreMinRadioButton = null;
private RadioButton SubFpsZsdPreMaxRadioButton = null;
private RadioButton SubFpsSlimVidMinRadioButton = null;
private RadioButton SubFpsSlimVidMaxRadioButton = null;
private RadioButton SubFpsHsVidMinRadioButton = null;
private RadioButton SubFpsHsVidMaxRadioButton = null;
//Prop
private String MainAfMinProp = null;
private String MainAfMaxProp = null;
private String MainFpsZsdPreMinProp = null;
private String MainFpsZsdPreMaxProp = null;
private String MainFpsSlimVidMinProp = null;
private String MainFpsSlimVidMaxProp = null;
private String MainFpsHsVidMinProp = null;
private String MainFpsHsVidMaxProp = null;
//Sub
private String SubAfMinProp = null;
private String SubAfMaxProp = null;
private String SubFpsZsdPreMinProp = null;
private String SubFpsZsdPreMaxProp = null;
private String SubFpsSlimVidMinProp = null;
private String SubFpsSlimVidMaxProp = null;
private String SubFpsHsVidMinProp = null;
private String SubFpsHsVidMaxProp = null;
//Value
private String MainAfValue = null;
private String MainFpsZsdPreValue = null;
private String MainFpsSlimVidValue = null;
private String MainFpsHsVidValue = null;
//Sub
private String SubAfValue = null;
private String SubFpsZsdPreValue = null;
private String SubFpsSlimVidValue = null;
private String SubFpsHsVidValue = null;
private TextView CCTPStatusTextView = null;
private Button StartCCTPButton = null;
private static Boolean isStartButtonClicked = false;
public void getViewById() {
//Get IDs
//Radio Group
MainAfRadioGroup = (RadioGroup)findViewById(R.id.MainAfRadioGroupId);
MainFpsZsdPreRadioGroup = (RadioGroup)findViewById(R.id.MainFpsZsdPreRadioGroupId);
MainFpsSlimVidRadioGroup = (RadioGroup)findViewById(R.id.MainFpsSlimVidRadioGroupId);
MainFpsHsVidRadioGroup = (RadioGroup)findViewById(R.id.MainFpsHsVidRadioGroupId);
//Sub
SubAfRadioGroup = (RadioGroup)findViewById(R.id.SubAfRadioGroupId);
SubFpsZsdPreRadioGroup = (RadioGroup)findViewById(R.id.SubFpsZsdPreRadioGroupId);
SubFpsSlimVidRadioGroup = (RadioGroup)findViewById(R.id.SubFpsSlimVidRadioGroupId);
SubFpsHsVidRadioGroup = (RadioGroup)findViewById(R.id.SubFpsHsVidRadioGroupId);
//Radio Button
MainAfMinRadioButton = (RadioButton)findViewById(R.id.MainAfInfinityRadioButtonId);
MainAfMaxRadioButton = (RadioButton)findViewById(R.id.MainAfMacroRadioButtonId);
MainFpsZsdPreMinRadioButton = (RadioButton)findViewById(R.id.MainFpsZsdPreMinRadioButtonId);
MainFpsZsdPreMaxRadioButton = (RadioButton)findViewById(R.id.MainFpsZsdPreMaxRadioButtonId);
MainFpsSlimVidMinRadioButton = (RadioButton)findViewById(R.id.MainFpsSlimVidMinRadioButtonId);
MainFpsSlimVidMaxRadioButton = (RadioButton)findViewById(R.id.MainFpsSlimVidMaxRadioButtonId);
MainFpsHsVidMinRadioButton = (RadioButton)findViewById(R.id.MainFpsHsVidMinRadioButtonId);
MainFpsHsVidMaxRadioButton = (RadioButton)findViewById(R.id.MainFpsHsVidMaxRadioButtonId);
//Sub
SubAfMinRadioButton = (RadioButton)findViewById(R.id.SubAfInfinityRadioButtonId);
SubAfMaxRadioButton = (RadioButton)findViewById(R.id.SubAfMacroRadioButtonId);
SubFpsZsdPreMinRadioButton = (RadioButton)findViewById(R.id.SubFpsZsdPreMinRadioButtonId);
SubFpsZsdPreMaxRadioButton = (RadioButton)findViewById(R.id.SubFpsZsdPreMaxRadioButtonId);
SubFpsSlimVidMinRadioButton = (RadioButton)findViewById(R.id.SubFpsSlimVidMinRadioButtonId);
SubFpsSlimVidMaxRadioButton = (RadioButton)findViewById(R.id.SubFpsSlimVidMaxRadioButtonId);
SubFpsHsVidMinRadioButton = (RadioButton)findViewById(R.id.SubFpsHsVidMinRadioButtonId);
SubFpsHsVidMaxRadioButton = (RadioButton)findViewById(R.id.SubFpsHsVidMaxRadioButtonId);
//
StartCCTPButton = (Button)findViewById(R.id.StartCCTPButtonId);
CCTPStatusTextView = (TextView)findViewById(R.id.CCTPStatusTextViewId);
}
public void bindButtonListener() {
//Bind Listers
StartCCTPButton.setOnClickListener(new StartCCTPButtonListener());
}
//
public void enableMainAfRadioGroup(boolean enable) {
for (int i = 0; i < MainAfRadioGroup.getChildCount(); i++) {
MainAfRadioGroup.getChildAt(i).setEnabled(enable);
}
}
public void enableMainFpsZsdPreRadioGroup(boolean enable) {
for (int i = 0; i < MainFpsZsdPreRadioGroup.getChildCount(); i++) {
MainFpsZsdPreRadioGroup.getChildAt(i).setEnabled(enable);
}
}
public void enableMainFpsSlimVidRadioGroup(boolean enable) {
for (int i = 0; i < MainFpsSlimVidRadioGroup.getChildCount(); i++) {
MainFpsSlimVidRadioGroup.getChildAt(i).setEnabled(enable);
}
}
public void enableMainFpsHsVidRadioGroup(boolean enable) {
for (int i = 0; i < MainFpsHsVidRadioGroup.getChildCount(); i++) {
MainFpsHsVidRadioGroup.getChildAt(i).setEnabled(enable);
}
}
//Sub
public void enableSubAfRadioGroup(boolean enable) {
for (int i = 0; i < SubAfRadioGroup.getChildCount(); i++) {
SubAfRadioGroup.getChildAt(i).setEnabled(enable);
}
}
public void enableSubFpsZsdPreRadioGroup(boolean enable) {
for (int i = 0; i < SubFpsZsdPreRadioGroup.getChildCount(); i++) {
SubFpsZsdPreRadioGroup.getChildAt(i).setEnabled(enable);
}
}
public void enableSubFpsSlimVidRadioGroup(boolean enable) {
for (int i = 0; i < SubFpsSlimVidRadioGroup.getChildCount(); i++) {
SubFpsSlimVidRadioGroup.getChildAt(i).setEnabled(enable);
}
}
public void enableSubFpsHsVidRadioGroup(boolean enable) {
for (int i = 0; i < SubFpsHsVidRadioGroup.getChildCount(); i++) {
SubFpsHsVidRadioGroup.getChildAt(i).setEnabled(enable);
}
}
public void enableAllRadioGroup(boolean enable) {
enableMainAfRadioGroup(enable);
enableMainFpsZsdPreRadioGroup(enable);
enableMainFpsSlimVidRadioGroup(enable);
enableMainFpsHsVidRadioGroup(enable);
//Sub
enableSubAfRadioGroup(enable);
enableSubFpsZsdPreRadioGroup(enable);
enableSubFpsSlimVidRadioGroup(enable);
enableSubFpsHsVidRadioGroup(enable);
}
//
public void displaySupportedDataOnRadio() {
MainAfMinRadioButton.setText("MinMa");
MainAfMaxRadioButton.setText("MaxMa");
MainFpsZsdPreMinRadioButton.setText(MainFpsZsdPreMinProp);
MainFpsZsdPreMaxRadioButton.setText(MainFpsZsdPreMaxProp);
MainFpsSlimVidMinRadioButton.setText(MainFpsSlimVidMinProp);
MainFpsSlimVidMaxRadioButton.setText(MainFpsSlimVidMaxProp);
MainFpsHsVidMinRadioButton.setText(MainFpsHsVidMinProp);
MainFpsHsVidMaxRadioButton.setText(MainFpsHsVidMaxProp);
//Sub
SubAfMinRadioButton.setText("MinMa");
SubAfMaxRadioButton.setText("MaxMa");
SubFpsZsdPreMinRadioButton.setText(SubFpsZsdPreMinProp);
SubFpsZsdPreMaxRadioButton.setText(SubFpsZsdPreMaxProp);
SubFpsSlimVidMinRadioButton.setText(SubFpsSlimVidMinProp);
SubFpsSlimVidMaxRadioButton.setText(SubFpsSlimVidMaxProp);
SubFpsHsVidMinRadioButton.setText(SubFpsHsVidMinProp);
SubFpsHsVidMaxRadioButton.setText(SubFpsHsVidMaxProp);
}
//
public void checkDeviceValid() {
if (MainAfMinProp.equals("0") && MainAfMaxProp.equals("0")) {
enableMainAfRadioGroup(false);
}
if (MainFpsZsdPreMinProp.equals("0") && MainFpsZsdPreMaxProp.equals("0")) {
enableMainFpsZsdPreRadioGroup(false);
}
if (MainFpsSlimVidMinProp.equals("0") && MainFpsSlimVidMaxProp.equals("0")) {
enableMainFpsSlimVidRadioGroup(false);
}
if (MainFpsHsVidMinProp.equals("0") && MainFpsHsVidMaxProp.equals("0")) {
enableMainFpsHsVidRadioGroup(false);
}
//Sub
if (SubAfMinProp.equals("0") && SubAfMaxProp.equals("0")) {
enableSubAfRadioGroup(false);
}
if (SubFpsZsdPreMinProp.equals("0") && SubFpsZsdPreMaxProp.equals("0")) {
enableSubFpsZsdPreRadioGroup(false);
}
if (SubFpsSlimVidMinProp.equals("0") && SubFpsSlimVidMaxProp.equals("0")) {
enableSubFpsSlimVidRadioGroup(false);
}
if (SubFpsHsVidMinProp.equals("0") && SubFpsHsVidMaxProp.equals("0")) {
enableSubFpsHsVidRadioGroup(false);
}
}
//
public boolean getSupportedPropFromSys() {
//try...catch...
MainAfMinProp = SystemProperties.get("debug.af.m.max","nodata");
MainAfMaxProp = SystemProperties.get("debug.af.m.min","nodata");
Log.e("GCCTP","getSupportedPropFromSys: MainAfMinProp:"+MainAfMinProp+" MainAfMaxProp:"+MainAfMaxProp);
MainFpsZsdPreMinProp = SystemProperties.get("debug.fps.m.min.pre","nodata");
MainFpsZsdPreMaxProp = SystemProperties.get("debug.fps.m.max.pre","nodata");
Log.e("GCCT","getSupportedPropFromSys: MainFpsZsdPreMinProp:"+MainFpsZsdPreMinProp+" MainFpsZsdPreMaxProp:"+MainFpsZsdPreMaxProp);
MainFpsSlimVidMinProp = SystemProperties.get("debug.fps.m.min.slim","nodata");
MainFpsSlimVidMaxProp = SystemProperties.get("debug.fps.m.max.slim","nodata");
Log.e("GCCT","getSupportedPropFromSys: MainFpsSlimVidMinProp:"+MainFpsSlimVidMinProp+" MainFpsSlimVidMaxProp:"+MainFpsSlimVidMaxProp);
MainFpsHsVidMinProp = SystemProperties.get("debug.fps.m.min.hs","nodata");
MainFpsHsVidMaxProp = SystemProperties.get("debug.fps.m.max.hs","nodata");
Log.e("GCCT","getSupportedPropFromSys: MainFpsHsVidMinProp:"+MainFpsHsVidMinProp+" MainFpsHsVidMaxProp:"+MainFpsHsVidMaxProp);
//Sub Camera
SubAfMinProp = SystemProperties.get("debug.af.s.max","nodata");
SubAfMaxProp = SystemProperties.get("debug.af.s.min","nodata");
Log.e("GCCTP","getSupportedPropFromSys: SubAfMinProp:"+SubAfMinProp+" SubAfMaxProp:"+SubAfMaxProp);
SubFpsZsdPreMinProp = SystemProperties.get("debug.fps.s.min.pre","nodata");
SubFpsZsdPreMaxProp = SystemProperties.get("debug.fps.s.max.pre","nodata");
Log.e("GCCT","getSupportedPropFromSys: SubFpsZsdPreMinProp:"+SubFpsZsdPreMinProp+" SubFpsZsdPreMaxProp:"+SubFpsZsdPreMaxProp);
SubFpsSlimVidMinProp = SystemProperties.get("debug.fps.s.min.slim","nodata");
SubFpsSlimVidMaxProp = SystemProperties.get("debug.fps.s.max.slim","nodata");
Log.e("GCCT","getSupportedPropFromSys: SubFpsSlimVidMinProp:"+SubFpsSlimVidMinProp+" SubFpsSlimVidMaxProp:"+SubFpsSlimVidMaxProp);
SubFpsHsVidMinProp = SystemProperties.get("debug.fps.s.min.hs","nodata");
SubFpsHsVidMaxProp = SystemProperties.get("debug.fps.s.max.hs","nodata");
Log.e("GCCT","getSupportedPropFromSys: SubFpsHsVidMinProp:"+SubFpsHsVidMinProp+" SubFpsHsVidMaxProp:"+SubFpsHsVidMaxProp);
return true;
}
/*
public void setDefaultDataToSys() {
Log.e("GCCT","setDefaultDataToSys: MainFpsZsdPreMaxProp:"+MainFpsZsdPreMaxProp+" MainFpsSlimVidMaxProp:"+MainFpsSlimVidMaxProp+"MainFpsHsVidMaxProp:"+MainFpsHsVidMaxProp);
Log.e("GCCT","setDefaultDataToSys: SubFpsZsdPreMaxProp:"+SubFpsZsdPreMaxProp+" SubFpsSlimVidMaxProp:"+SubFpsSlimVidMaxProp+"SubFpsHsVidMaxProp:"+SubFpsHsVidMaxProp);
//SystemProperties.set("debug.mode.m.zsd_pre", MainFpsZsdPreValue);
//SystemProperties.set("debug.mode.m.zsd_pre", MainFpsZsdPreMaxProp);
//SystemProperties.set("debug.mode.m.slim_vid", MainFpsSlimVidMaxProp);
//SystemProperties.set("debug.mode.m.hs_vid", MainFpsHsVidMaxProp);
MainFpsZsdPreValue = MainFpsZsdPreMaxProp;
MainFpsSlimVidValue = MainFpsSlimVidMaxProp;
MainFpsHsVidValue = MainFpsHsVidMaxProp;
//Sub
//SystemProperties.set("debug.mode.s.zsd_pre", SubFpsZsdPreMaxProp);
//SystemProperties.set("debug.mode.s.slim_vid", SubFpsSlimVidMaxProp);
//SystemProperties.set("debug.mode.s.hs_vid", SubFpsHsVidMaxProp);
SubFpsZsdPreValue = SubFpsZsdPreMaxProp;
SubFpsSlimVidValue = SubFpsSlimVidMaxProp;
SubFpsHsVidValue = SubFpsHsVidMaxProp;
}
*/
public void setDataOnRadio() {
Log.e("GCCTP","setDataOnRadio: MainFpsZsdPreValue:"+MainFpsZsdPreValue+"MainFpsZsdPreMinProp:"+MainFpsZsdPreMinProp);
if (MainAfValue.equals(MainAfMinProp)) {
MainAfRadioGroup.check(R.id.MainAfInfinityRadioButtonId);
} else {
MainAfRadioGroup.check(R.id.MainAfMacroRadioButtonId);
}
if (MainFpsZsdPreValue.equals(MainFpsZsdPreMinProp)) {
MainFpsZsdPreRadioGroup.check(R.id.MainFpsZsdPreMinRadioButtonId);
} else {
MainFpsZsdPreRadioGroup.check(R.id.MainFpsZsdPreMaxRadioButtonId);
}
if (MainFpsSlimVidValue.equals(MainFpsSlimVidMinProp)) {
MainFpsSlimVidRadioGroup.check(R.id.MainFpsSlimVidMinRadioButtonId);
} else {
MainFpsSlimVidRadioGroup.check(R.id.MainFpsSlimVidMaxRadioButtonId);
}
if (MainFpsHsVidValue.equals(MainFpsHsVidMinProp)) {
MainFpsHsVidRadioGroup.check(R.id.MainFpsHsVidMinRadioButtonId);
} else {
MainFpsHsVidRadioGroup.check(R.id.MainFpsHsVidMaxRadioButtonId);
}
//Sub
if (SubAfValue.equals(SubAfMinProp)) {
SubAfRadioGroup.check(R.id.SubAfInfinityRadioButtonId);
} else {
SubAfRadioGroup.check(R.id.SubAfMacroRadioButtonId);
}
if (SubFpsZsdPreValue.equals(SubFpsZsdPreMinProp)) {
SubFpsZsdPreRadioGroup.check(R.id.SubFpsZsdPreMinRadioButtonId);
} else {
SubFpsZsdPreRadioGroup.check(R.id.SubFpsZsdPreMaxRadioButtonId);
}
if (SubFpsSlimVidValue.equals(SubFpsSlimVidMinProp)) {
SubFpsSlimVidRadioGroup.check(R.id.SubFpsSlimVidMinRadioButtonId);
} else {
SubFpsSlimVidRadioGroup.check(R.id.SubFpsSlimVidMaxRadioButtonId);
}
if (SubFpsHsVidValue.equals(SubFpsHsVidMinProp)) {
SubFpsHsVidRadioGroup.check(R.id.SubFpsHsVidMinRadioButtonId);
} else {
SubFpsHsVidRadioGroup.check(R.id.SubFpsHsVidMaxRadioButtonId);
}
}
public void getDataFromSys() {
MainAfValue = SystemProperties.get("debug.af.m.pos","nodata");
MainFpsZsdPreValue = SystemProperties.get("debug.fps.m.zsd_pre","nodata");
MainFpsSlimVidValue = SystemProperties.get("debug.fps.m.slim_vid","nodata");
MainFpsHsVidValue = SystemProperties.get("debug.fps.m.hs_vid","nodata");
//Sub
SubAfValue = SystemProperties.get("debug.af.s.pos","nodata");
SubFpsZsdPreValue = SystemProperties.get("debug.fps.s.zsd_pre","nodata");
SubFpsSlimVidValue = SystemProperties.get("debug.fps.s.slim_vid","nodata");
SubFpsHsVidValue = SystemProperties.get("debug.fps.s.hs_vid","nodata");
Log.e("GCCT","getDataFromSys: MainFpsZsdPreValue:"+MainFpsZsdPreValue+" MainFpsSlimVidValue:"+MainFpsSlimVidValue+" MainFpsHsVidValue:"+MainFpsHsVidValue);
Log.e("GCCT","getDataFromSys: SubFpsZsdPreValue:"+SubFpsZsdPreValue+" SubFpsSlimVidValue:"+SubFpsSlimVidValue+" SubFpsHsVidValue:"+SubFpsHsVidValue);
}
public void setDataToSys() {
Log.e("GCCT","setDataToSys(before set): MainFpsZsdPreValue:"+MainFpsZsdPreValue+" MainFpsSlimVidValue:"+MainFpsSlimVidValue+" MainFpsHsVidValue:"+MainFpsHsVidValue);
Log.e("GCCT","setDataToSys(before set): SubFpsZsdPreValue:"+SubFpsZsdPreValue+" SubFpsSlimVidValue:"+SubFpsSlimVidValue+" SubFpsHsVidValue:"+SubFpsHsVidValue);
SystemProperties.set("debug.af.m.pos", MainAfValue);
SystemProperties.set("debug.fps.m.zsd_pre", MainFpsZsdPreValue);
SystemProperties.set("debug.fps.m.slim_vid", MainFpsSlimVidValue);
SystemProperties.set("debug.fps.m.hs_vid", MainFpsHsVidValue);
//Sub
SystemProperties.set("debug.af.s.pos", SubAfValue);
SystemProperties.set("debug.fps.s.zsd_pre", SubFpsZsdPreValue);
SystemProperties.set("debug.fps.s.slim_vid", SubFpsSlimVidValue);
SystemProperties.set("debug.fps.s.hs_vid", SubFpsHsVidValue);
Log.e("GCCT","setDataToSys(after set): MainAfValue:"+SystemProperties.get("debug.af.m.pos","nodata"));
Log.e("GCCT","setDataToSys(after set): MainFpsZsdPreValue:"+SystemProperties.get("debug.fps.m.zsd_pre","nodata"));
Log.e("GCCT","setDataToSys(after set): MainFpsSlimVidValue:"+SystemProperties.get("debug.fps.m.slim_vid","nodata"));
Log.e("GCCT","setDataToSys(after set): MainFpsHsVidValue:"+SystemProperties.get("debug.fps.m.hs_vid","nodata"));
//Sub
Log.e("GCCT","setDataToSys(after set): SubAfValue:"+SystemProperties.get("debug.af.s.pos","nodata"));
Log.e("GCCT","setDataToSys(after set): SubFpsZsdPreValue:"+SystemProperties.get("debug.fps.s.zsd_pre","nodata"));
Log.e("GCCT","setDataToSys(after set): SubFpsSlimVidValue:"+SystemProperties.get("debug.fps.s.slim_vid","nodata"));
Log.e("GCCT","setDataToSys(after set): SubFpsHsVidValue:"+SystemProperties.get("debug.fps.s.hs_vid","nodata"));
}
public boolean isCCTPRunning() {
String isCCTPRunnig = null;
isCCTPRunnig = SystemProperties.get("debug.cctp.on","nodata");//try...catch...
Log.e("GCCTP","isCCTPRunnig:"+isCCTPRunnig);
return isCCTPRunnig.equals("1");
}
public void setStartButtonStatus(boolean on) {
if (on) {
StartCCTPButton.setText("Stop CCTP");
StartCCTPButton.setTextColor(0xFF000000);
StartCCTPButton.setBackgroundColor(android.graphics.Color.RED);
} else {
StartCCTPButton.setText("Start CCTP");
StartCCTPButton.setBackgroundColor(android.graphics.Color.GRAY);
}
}
public void setCCTPTextViewStatus(boolean on) {
if (on) {
Log.e("GCCTP","CCT is runnig now, click to stop!");
CCTPStatusTextView.setText("CCTP is runnig now, click to stop!");
} else {
Log.e("GCCTP","CCT is stopped, click to start!");
CCTPStatusTextView.setText("CCTP is stopped, click to start!");
}
}
public void doStartCCTP(String on) {
Log.e("GCCTP","doStartCCTP(before set), on:"+on);
SystemProperties.set("debug.cctp.on", on);
Log.e("GCCTP","doStartCCTP(after set), on:"+SystemProperties.get("debug.cctp.on","nodata"));
}
public void startCCTP(boolean on) {
String s = null;
//
Log.e("GCCTP","startCCTP(before enableAllRadioGroup), MainFpsZsdPreValue:"+MainFpsZsdPreValue);
if (on) {
enableAllRadioGroup(false);
setCCTPTextViewStatus(true);
setStartButtonStatus(true);
} else {
//
enableAllRadioGroup(true);
checkDeviceValid();
//
setCCTPTextViewStatus(false);
setStartButtonStatus(false);
}
Log.e("GCCTP","startCCTP(after enableAllRadioGroup), MainFpsZsdPreValue:"+MainFpsZsdPreValue);
//
if (on) {
setDataToSys();
s = String.valueOf(1);
} else {
s = String.valueOf(0);
}
//
//set value
//set flag on
doStartCCTP(s);
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.cct_main_xml);
Log.e("GCCTP","onCreate: isCCTPRunning:"+isCCTPRunning());
//
getViewById();
bindButtonListener();
//
getSupportedPropFromSys();//Only need to get once!
displaySupportedDataOnRadio();
//
getDataFromSys();
setDataOnRadio();
//
if (isCCTPRunning()) {
enableAllRadioGroup(false);
setCCTPTextViewStatus(true);
setStartButtonStatus(true);
isStartButtonClicked = true;
} else {
//setDefaultDataToSys();//only when data is null
//
enableAllRadioGroup(true);
checkDeviceValid();
//
setCCTPTextViewStatus(false);
setStartButtonStatus(false);
isStartButtonClicked = false;
}
//
}
@Override
protected void onRestart() {
// TODO Auto-generated method stub
super.onRestart();
Log.e("GCCTP","onRestart: isCCTPRunning:"+isCCTPRunning());
//
if (isCCTPRunning()) {
enableAllRadioGroup(false);
setCCTPTextViewStatus(true);
setStartButtonStatus(true);
isStartButtonClicked = true;
} else {
//
enableAllRadioGroup(true);
checkDeviceValid();
//
setCCTPTextViewStatus(false);
setStartButtonStatus(false);
isStartButtonClicked = false;
}
}
class StartCCTPButtonListener implements OnClickListener {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(isStartButtonClicked == true)
{
Log.e("GCCTP","StartCCTPButtonListener isStartButtonClicked=true IN");
isStartButtonClicked = false;
startCCTP(false);
} else {
Log.e("GCCTP","StartCCTPButtonListener isStartButtonClicked=false IN");
isStartButtonClicked = true;
startCCTP(true);
}
}
}
public void onRadioButtonClicked(View view) {
// Is the button now checked?
boolean checked = ((RadioButton) view).isChecked();
// Check which radio button was clicked
switch(view.getId()) {
//Main
case R.id.MainAfMacroRadioButtonId:
if (checked) {
Log.e("GCCTP","onRadioButtonClicked MainAfMacroRadioButtonId checked, MainAfMaxProp:"+MainAfMaxProp);
MainAfValue = MainAfMaxProp;
}
break;
case R.id.MainAfInfinityRadioButtonId:
if (checked) {
Log.e("GCCTP","onRadioButtonClicked MainAfInfinityRadioButtonId checked, MainAfMinProp:"+MainAfMinProp);
MainAfValue = MainAfMinProp;
}
break;
case R.id.MainFpsZsdPreMinRadioButtonId:
if (checked) {
Log.e("GCCTP","onRadioButtonClicked MainFpsZsdPreMinRadioButtonId checked, MainFpsZsdPreMinProp:"+MainFpsZsdPreMinProp);
MainFpsZsdPreValue = MainFpsZsdPreMinProp;
}
break;
case R.id.MainFpsZsdPreMaxRadioButtonId:
if (checked) {
Log.e("GCCTP","onRadioButtonClicked MainFpsZsdPreMaxRadioButtonId checked, MainFpsZsdPreMaxProp:"+MainFpsZsdPreMaxProp);
MainFpsZsdPreValue = MainFpsZsdPreMaxProp;
}
break;
case R.id.MainFpsSlimVidMinRadioButtonId:
if (checked) {
Log.e("GCCTP","onRadioButtonClicked MainFpsSlimVidMinRadioButtonId checked, MainFpsSlimVidMinProp:"+MainFpsSlimVidMinProp);
Log.e("GCCTP","onRadioButtonClicked MainFpsSlimVidMinRadioButtonId checked, MainFpsZsdPreValue:"+MainFpsZsdPreValue);
MainFpsSlimVidValue = MainFpsSlimVidMinProp;
}
break;
case R.id.MainFpsSlimVidMaxRadioButtonId:
if (checked) {
Log.e("GCCTP","onRadioButtonClicked MainFpsSlimVidMaxRadioButtonId checked, MainFpsSlimVidMaxProp:"+MainFpsSlimVidMaxProp);
MainFpsSlimVidValue = MainFpsSlimVidMaxProp;
}
break;
case R.id.MainFpsHsVidMinRadioButtonId:
if (checked) {
Log.e("GCCTP","onRadioButtonClicked MainFpsHsVidMinRadioButtonId checked, MainFpsHsVidMinProp:"+MainFpsHsVidMinProp);
MainFpsHsVidValue = MainFpsHsVidMinProp;
}
break;
case R.id.MainFpsHsVidMaxRadioButtonId:
if (checked) {
Log.e("GCCTP","onRadioButtonClicked MainFpsHsVidMaxRadioButtonId checked, MainFpsHsVidMaxProp:"+MainFpsHsVidMaxProp);
MainFpsHsVidValue = MainFpsHsVidMaxProp;
}
break;
//Sub
case R.id.SubAfMacroRadioButtonId:
if (checked) {
Log.e("GCCTP","onRadioButtonClicked SubAfMacroRadioButtonId checked, SubAfMaxProp:"+SubAfMaxProp);
SubAfValue = SubAfMaxProp;
}
break;
case R.id.SubAfInfinityRadioButtonId:
if (checked) {
Log.e("GCCTP","onRadioButtonClicked SubAfInfinityRadioButtonId checked, SubAfMinProp:"+SubAfMinProp);
SubAfValue = SubAfMinProp;
}
break;
case R.id.SubFpsZsdPreMaxRadioButtonId:
if (checked) {
Log.e("GCCTP","onRadioButtonClicked SubFpsZsdPreMaxRadioButtonId checked, SubFpsZsdPreMaxProp:"+SubFpsZsdPreMaxProp);
SubFpsZsdPreValue = SubFpsZsdPreMaxProp;
}
break;
case R.id.SubFpsSlimVidMinRadioButtonId:
if (checked) {
Log.e("GCCTP","onRadioButtonClicked SubFpsSlimVidMinRadioButtonId checked, SubFpsSlimVidMinProp:"+SubFpsSlimVidMinProp);
SubFpsSlimVidValue = SubFpsSlimVidMinProp;
}
break;
case R.id.SubFpsSlimVidMaxRadioButtonId:
if (checked) {
Log.e("GCCTP","onRadioButtonClicked SubFpsSlimVidMaxRadioButtonId checked, SubFpsSlimVidMaxProp:"+SubFpsSlimVidMaxProp);
SubFpsSlimVidValue = SubFpsSlimVidMaxProp;
}
break;
case R.id.SubFpsHsVidMinRadioButtonId:
if (checked) {
Log.e("GCCTP","onRadioButtonClicked SubFpsHsVidMinRadioButtonId checked, SubFpsHsVidMinProp:"+SubFpsHsVidMinProp);
SubFpsHsVidValue = SubFpsHsVidMinProp;
}
break;
case R.id.SubFpsHsVidMaxRadioButtonId:
if (checked) {
Log.e("GCCTP","onRadioButtonClicked SubFpsHsVidMaxRadioButtonId checked, SubFpsHsVidMaxProp:"+SubFpsHsVidMaxProp);
SubFpsHsVidValue = SubFpsHsVidMaxProp;
}
break;
}
}
}
4.
cct_main_xml.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<Button
android:id="@+id/StartCCTPButtonId"
android:layout_alignParentBottom="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/StartCCTPButtonText"
/>
<TextView
android:id="@+id/CCTPStatusTextViewId"
android:layout_above="@+id/StartCCTPButtonId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/CCTPStatusText"
/>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginBottom="20dp"
android:layout_marginLeft="45dp"
android:layout_marginRight="20dp"
android:layout_weight = "1">
<TextView
android:id="@+id/AfReleatedTextViewId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/AfReleatedText"
/>
<TextView
android:id="@+id/MainAfTextViewId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/AfReleatedTextViewId"
android:layout_marginLeft="20dp"
android:text="@string/MainAfText"
/>
<RadioGroup
android:id="@+id/MainAfRadioGroupId"
android:checkedButton="@+id/MainAfMacroRadioButtonId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/MainAfTextViewId"
android:orientation="horizontal">
<TextView
android:id="@+id/MainAfModeId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginRight="5dp"
android:text="@string/MainAfModeText"
/>
<RadioButton
android:id="@+id/MainAfInfinityRadioButtonId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight = "1"
android:text="@string/MainAfInfinityText"
android:onClick="onRadioButtonClicked"
/>
<RadioButton
android:id="@+id/MainAfMacroRadioButtonId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight = "1"
android:text="@string/MainAfMacroText"
android:onClick="onRadioButtonClicked"
/>
</RadioGroup>
<TextView
android:id="@+id/SubAfTextViewId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/MainAfRadioGroupId"
android:layout_marginLeft="20dp"
android:text="@string/SubAfText"
/>
<RadioGroup
android:id="@+id/SubAfRadioGroupId"
android:checkedButton="@+id/SubAfMacroRadioButtonId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/SubAfTextViewId"
android:orientation="horizontal">
<TextView
android:id="@+id/SubAfModeId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginRight="5dp"
android:text="@string/SubAfModeText"
/>
<RadioButton
android:id="@+id/SubAfInfinityRadioButtonId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight = "1"
android:text="@string/SubAfInfinityText"
android:onClick="onRadioButtonClicked"
/>
<RadioButton
android:id="@+id/SubAfMacroRadioButtonId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight = "1"
android:text="@string/SubAfMacroText"
android:onClick="onRadioButtonClicked"
/>
</RadioGroup>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/SubAfRadioGroupId"
android:layout_marginTop="20dp"
android:layout_marginBottom="20dp"
android:layout_weight = "1">
<TextView
android:id="@+id/FpsReleatedId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/FpsReleatedText"
/>
<TextView
android:id="@+id/MainCameraTextViewId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/FpsReleatedId"
android:layout_marginLeft="20dp"
android:text="@string/MainCameraText"
/>
<RadioGroup
android:id="@+id/MainFpsZsdPreRadioGroupId"
android:checkedButton="@+id/MainFpsZsdPreMaxRadioButtonId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/MainCameraTextViewId"
android:orientation="horizontal">
<TextView
android:id="@+id/MainFpsZsdPreRadioGroupTextViewId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginRight="5dp"
android:text="@string/MainFpsZsdPreRadioGroupText"
/>
<RadioButton
android:id="@+id/MainFpsZsdPreMinRadioButtonId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight = "1"
android:text="@string/MainFpsZsdPreMinRadioButtonText"
android:onClick="onRadioButtonClicked"
/>
<RadioButton
android:id="@+id/MainFpsZsdPreMaxRadioButtonId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight = "1"
android:text="@string/MainFpsZsdPreMaxRadioButtonText"
android:onClick="onRadioButtonClicked"
/>
</RadioGroup>
<RadioGroup
android:id="@+id/MainFpsSlimVidRadioGroupId"
android:checkedButton="@+id/MainFpsSlimVidMaxRadioButtonId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/MainFpsZsdPreRadioGroupId"
android:orientation="horizontal">
<TextView
android:id="@+id/MainSlimVidRadioGroupTextViewId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginRight="15dp"
android:text="@string/MainFpsSlimVidRadioGroupText"
/>
<RadioButton
android:id="@+id/MainFpsSlimVidMinRadioButtonId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight = "1"
android:text="@string/MainFpsSlimVidMinRadioButtonText"
android:onClick="onRadioButtonClicked"
/>
<RadioButton
android:id="@+id/MainFpsSlimVidMaxRadioButtonId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight = "1"
android:text="@string/MainFpsSlimVidMaxRadioButtonText"
android:onClick="onRadioButtonClicked"
/>
</RadioGroup>
<RadioGroup
android:id="@+id/MainFpsHsVidRadioGroupId"
android:checkedButton="@+id/MainFpsHsVidMaxRadioButtonId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/MainFpsSlimVidRadioGroupId"
android:orientation="horizontal">
<TextView
android:id="@+id/MainHsVidRadioGroupTextViewId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginRight="25dp"
android:text="@string/MainFpsHsVidRadioGroupText"
/>
<RadioButton
android:id="@+id/MainFpsHsVidMinRadioButtonId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight = "1"
android:text="@string/MainFpsHsVidMinRadioButtonText"
android:onClick="onRadioButtonClicked"
/>
<RadioButton
android:id="@+id/MainFpsHsVidMaxRadioButtonId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight = "1"
android:text="@string/MainFpsHsVidMaxRadioButtonText"
android:onClick="onRadioButtonClicked"
/>
</RadioGroup>
<TextView
android:id="@+id/SubCameraTextViewId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/MainFpsHsVidRadioGroupId"
android:layout_marginLeft="20dp"
android:text="@string/SubCameraText"
/>
<RadioGroup
android:id="@+id/SubFpsZsdPreRadioGroupId"
android:checkedButton="@+id/SubFpsZsdPreMaxRadioButtonId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/SubCameraTextViewId"
android:orientation="horizontal">
<TextView
android:id="@+id/SubFpsZsdPreRadioGroupTextViewId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginRight="5dp"
android:text="@string/SubFpsZsdPreRadioGroupText"
/>
<RadioButton
android:id="@+id/SubFpsZsdPreMinRadioButtonId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight = "1"
android:text="@string/SubFpsZsdPreMinRadioButtonText"
android:onClick="onRadioButtonClicked"
/>
<RadioButton
android:id="@+id/SubFpsZsdPreMaxRadioButtonId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight = "1"
android:text="@string/SubFpsZsdPreMaxRadioButtonText"
android:onClick="onRadioButtonClicked"
/>
</RadioGroup>
<RadioGroup
android:id="@+id/SubFpsSlimVidRadioGroupId"
android:checkedButton="@+id/SubFpsSlimVidMaxRadioButtonId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/SubFpsZsdPreRadioGroupId"
android:orientation="horizontal">
<TextView
android:id="@+id/SubSlimVidRadioGroupTextViewId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginRight="15dp"
android:text="@string/SubFpsSlimVidRadioGroupText"
/>
<RadioButton
android:id="@+id/SubFpsSlimVidMinRadioButtonId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight = "1"
android:text="@string/SubFpsSlimVidMinRadioButtonText"
android:onClick="onRadioButtonClicked"
/>
<RadioButton
android:id="@+id/SubFpsSlimVidMaxRadioButtonId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight = "1"
android:text="@string/SubFpsSlimVidMaxRadioButtonText"
android:onClick="onRadioButtonClicked"
/>
</RadioGroup>
<RadioGroup
android:id="@+id/SubFpsHsVidRadioGroupId"
android:checkedButton="@+id/SubFpsHsVidMaxRadioButtonId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/SubFpsSlimVidRadioGroupId"
android:orientation="horizontal">
<TextView
android:id="@+id/SubHsVidRadioGroupTextViewId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginRight="25dp"
android:text="@string/SubFpsHsVidRadioGroupText"
/>
<RadioButton
android:id="@+id/SubFpsHsVidMinRadioButtonId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight = "1"
android:text="@string/SubFpsHsVidMinRadioButtonText"
android:onClick="onRadioButtonClicked"
/>
<RadioButton
android:id="@+id/SubFpsHsVidMaxRadioButtonId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight = "1"
android:text="@string/SubFpsHsVidMaxRadioButtonText"
android:onClick="onRadioButtonClicked"
/>
</RadioGroup>
</RelativeLayout>
</RelativeLayout>
</RelativeLayout>
5.
String.xml
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<string name="app_name">code</string>
<string name="action_settings">Settings</string>
<string name="StartCCTPButtonText">Start CCTP</string>
<string name="CCTPStatusText">null</string>
<string name="AfReleatedText">AF Releated:</string>
<string name="MainAfText">Main Camera:</string>
<string name="MainAfModeText">AFMode:</string>
<string name="MainAfMacroText">MaxMa</string>
<string name="MainAfInfinityText">MinMa</string>
<string name="SubAfText">Sub Camera:</string>
<string name="SubAfModeText">AFMode:</string>
<string name="SubAfMacroText">MaxMa</string>
<string name="SubAfInfinityText">MinMa</string>
<string name="FpsReleatedText">Fps Releated:</string>
<string name="MainCameraText">Main Camera:</string>
<string name="MainFpsZsdPreRadioGroupText">Zsd Preview Fps:</string>
<string name="MainFpsZsdPreMinRadioButtonText">Min</string>
<string name="MainFpsZsdPreMaxRadioButtonText">Max</string>
<string name="MainFpsSlimVidRadioGroupText">Slim Video Fps:</string>
<string name="MainFpsSlimVidMinRadioButtonText">Min</string>
<string name="MainFpsSlimVidMaxRadioButtonText">Max</string>
<string name="MainFpsHsVidRadioGroupText">Hs Video Fps:</string>
<string name="MainFpsHsVidMinRadioButtonText">Min</string>
<string name="MainFpsHsVidMaxRadioButtonText">Max</string>
<string name="SubCameraText">Sub Camera:</string>
<string name="SubFpsZsdPreRadioGroupText">Zsd Preview Fps:</string>
<string name="SubFpsZsdPreMinRadioButtonText">Min</string>
<string name="SubFpsZsdPreMaxRadioButtonText">Max</string>
<string name="SubFpsSlimVidRadioGroupText">Slim Video Fps:</string>
<string name="SubFpsSlimVidMinRadioButtonText">Min</string>
<string name="SubFpsSlimVidMaxRadioButtonText">Max</string>
<string name="SubFpsHsVidRadioGroupText">Hs Video Fps:</string>
<string name="SubFpsHsVidMinRadioButtonText">Min</string>
<string name="SubFpsHsVidMaxRadioButtonText">Max</string>
</resources>
- start-activity-by-securecode
- Java.lang.RuntimeException: Unable to start activity ComponentInfo Caused by: java.lang.NullPointer
- start with connect by
- start with connect by
- start with connect by
- connect by/start with
- start with connect by
- Intent start second activity
- connect by prior start with
- connect by prior start with
- connect by…start with...
- START WITH...CONNECT BY 学习!
- CONNECT BY PRIOR... START WITH
- connect by prior start with
- Start With......Connect by prior..
- Oracle Connect By Start With
- start with connect by prior
- start with ... connect by ...练习
- 数据库中清空log日志
- program design recipe
- 基于NSTimer的倒计时
- Linux PM: Hibernate/Sleep
- fullpage全屏/整屏滚动组件简单实例Demo
- start-activity-by-securecode
- 端口(地址)扫描工具nmap的使用
- UISlider的使用
- 超级表格如何成就了速度与激情?
- 市 区 分级显示marker
- Grunt搭建AngularJS项目
- Universal-Image-Loader 原理和实现
- LeetCode OJ : 6 ZigZag Conversion
- Linux + javaEE 学习笔记---Linux常用命令设定运行级别