release V89
authorsnickersun <scy@incartech.cn>
Fri, 5 Mar 2021 14:34:36 +0000 (22:34 +0800)
committersnickersun <scy@incartech.cn>
Fri, 5 Mar 2021 14:34:36 +0000 (22:34 +0800)
修复V20上AT指令发送问题。
Gsensor测试兼容 qma7981和sc7a21
SIM卡测试加入滚动条,解决部分信息无法看到问题。

18 files changed:
app/libs/framework.jar [deleted file]
app/release/FactoryMode_V89_202103052229_release.apk [new file with mode: 0644]
app/release/output.json
app/src/main/AndroidManifest.xml
app/src/main/java/com/ic/jni/AtCMD.java [new file with mode: 0644]
app/src/main/java/mobile/miki/GravitySensorActivity.java
app/src/main/java/mobile/miki/MyApplication.java
app/src/main/java/mobile/miki/flow/DownLoad.java
app/src/main/java/mobile/miki/util/IATUtils.java
app/src/main/jni/com_ic_jni_AtCMD.h [new file with mode: 0644]
app/src/main/jni/com_ic_jni_ICJniUtils.h [new file with mode: 0644]
app/src/main/jni/com_ic_jni_ICJniUtils_GSensorType.h [new file with mode: 0644]
app/src/main/jni/com_ic_jni_ICJniUtils_PPG_EGC_SensorType.h [new file with mode: 0644]
app/src/main/jni/com_ic_jni_ICJniUtils_TempSensorType.h [new file with mode: 0644]
app/src/main/libs/arm64-v8a/libjni_atcmd.so [new file with mode: 0644]
app/src/main/libs/armeabi-v7a/libjni_atcmd.so [new file with mode: 0644]
app/src/main/res/layout/sim_detect_layout.xml
app/version_code.properties

diff --git a/app/libs/framework.jar b/app/libs/framework.jar
deleted file mode 100644 (file)
index 82607b8..0000000
Binary files a/app/libs/framework.jar and /dev/null differ
diff --git a/app/release/FactoryMode_V89_202103052229_release.apk b/app/release/FactoryMode_V89_202103052229_release.apk
new file mode 100644 (file)
index 0000000..e9ad4ff
Binary files /dev/null and b/app/release/FactoryMode_V89_202103052229_release.apk differ
index b1a5f1e..fd9e29d 100644 (file)
@@ -1 +1 @@
-[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":62,"versionName":"202012311503","enabled":true,"outputFile":"FactoryMode_V62_202012311503_release.apk","fullName":"release","baseName":"release"},"path":"FactoryMode_V62_202012311503_release.apk","properties":{}}]
\ No newline at end of file
+[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":89,"versionName":"202103052229","enabled":true,"outputFile":"FactoryMode_V89_202103052229_release.apk","fullName":"release","baseName":"release"},"path":"FactoryMode_V89_202103052229_release.apk","properties":{}}]
\ No newline at end of file
index 0a1a6ee..f4ccab1 100644 (file)
@@ -2,6 +2,9 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="mobile.miki"
     android:sharedUserId="android.uid.system">
+
+    <uses-sdk android:minSdkVersion="14" />
+
     <!-- android:sharedUserId="android.uid.phone" -->
     <uses-permission android:name="android.permission.VIBRATE" />
     <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
@@ -28,6 +31,8 @@
     <uses-permission android:name="android.permission.RECORD_AUDIO" />
     <uses-permission android:name="android.permission.FORCE_STOP_PACKAGES" />
     <uses-permission android:name="android.permission.CAMERA" />
+    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
+
 
     <permission android:name="android.permission.SHUTDOWN" />
 
diff --git a/app/src/main/java/com/ic/jni/AtCMD.java b/app/src/main/java/com/ic/jni/AtCMD.java
new file mode 100644 (file)
index 0000000..3e235a9
--- /dev/null
@@ -0,0 +1,27 @@
+package com.ic.jni;
+
+import android.util.Log;
+
+public class AtCMD {
+    public static boolean loadlibrary_success=false;
+    static {
+        try {
+            System.loadLibrary("jni_atcmd");
+            loadlibrary_success =true;
+        } catch (UnsatisfiedLinkError e) {
+            Log.d("ValidationToolsNative", " #loadLibrary jni_validationtools failed  ");
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * send AT cmd to modem 
+     *
+     * @return (String: the return value of send cmd, "OK":sucess, "ERROR":fail)
+     */
+    public static native String native_sendATCmd(int phoneId, String cmd);
+
+    public static native boolean native_hashValueWrited();
+
+    public static native int native_get_rootflag();
+}
\ No newline at end of file
index bf10744..4f88695 100644 (file)
@@ -84,25 +84,71 @@ public class GravitySensorActivity extends BaseActivity
        public void onAccuracyChanged(Sensor sensor, int accuracy) {
        }
 
+       private final int TYPE_QMA7981=0;
+       private final int TYPE_SC7A21=1;
+
+       private int get_gsensor_type(float x, float y , float z){
+               float max=x;
+               if( max<=y){
+                       max=y;
+               }
+               if(max<=z){
+                       max=z;
+               }
+               if( max <80){
+                       return TYPE_QMA7981;
+               }else{
+                       return TYPE_SC7A21;
+               }
+       }
        public void onSensorChanged(SensorEvent event) {
-               Log.i("dxc", "onSensorChanged x:" + event.values[0x0] + " y:" + event.values[0x1] + " z:" +  event.values[0x2]);
-               xyzValue.setText("x:" + String .format("%.2f",event.values[0x0]) + " ,y:" + String .format("%.2f",event.values[0x1]) + " ,z:" + String .format("%.2f",event.values[0x2]));
+
                ((TextView) findViewById(R.id.tvGraX)).setText(String.valueOf(event.values[0x0]));
                ((TextView) findViewById(R.id.tvGraY)).setText(String.valueOf(event.values[0x1]));
                ((TextView) findViewById(R.id.tvGraZ)).setText(String.valueOf(event.values[0x2]));
-               if (event.values[0x0] > 24.0 && !gb_left) {
-                       gs_left.setImageResource(R.drawable.gs_2_l);
-                       gb_left = true;
-               } else if (event.values[0x0] < -24.0 && !gb_right) {
-                       gs_right.setImageResource(R.drawable.gs_2_r);
-                       gb_right = true;
-               } else if (event.values[0x1] > 25.0 && !gb_down) {
-                       gs_down.setImageResource(R.drawable.gs_2_d);
-                       gb_down = true;
-               } else if (event.values[0x1] < -23.0 && !gb_up) {
-                       gs_up.setImageResource(R.drawable.gs_2_u);
-                       gb_up = true;
+               int type=get_gsensor_type(Math.abs(event.values[0x0]),Math.abs(event.values[0x1]),Math.abs(event.values[0x2]));
+
+               switch(type){
+                       case TYPE_QMA7981:
+                               {
+                                       if (event.values[0x0] > 3.0 && !gb_left) {
+                                               gs_left.setImageResource(R.drawable.gs_2_l);
+                                               gb_left = true;
+                                       } else if (event.values[0x0] < -3.0 && !gb_right) {
+                                               gs_right.setImageResource(R.drawable.gs_2_r);
+                                               gb_right = true;
+                                       } else if (event.values[0x1] > 3.0 && !gb_down) {
+                                               gs_down.setImageResource(R.drawable.gs_2_d);
+                                               gb_down = true;
+                                       } else if (event.values[0x1] < -3.0 && !gb_up) {
+                                               gs_up.setImageResource(R.drawable.gs_2_u);
+                                               gb_up = true;
+                                       }
+                               }
+                               break;
+
+                       default:
+                               {
+                                       if (event.values[0x0] > 24.0 && !gb_left) {
+                                               gs_left.setImageResource(R.drawable.gs_2_l);
+                                               gb_left = true;
+                                       } else if (event.values[0x0] < -24.0 && !gb_right) {
+                                               gs_right.setImageResource(R.drawable.gs_2_r);
+                                               gb_right = true;
+                                       } else if (event.values[0x1] > 25.0 && !gb_down) {
+                                               gs_down.setImageResource(R.drawable.gs_2_d);
+                                               gb_down = true;
+                                       } else if (event.values[0x1] < -23.0 && !gb_up) {
+                                               gs_up.setImageResource(R.drawable.gs_2_u);
+                                               gb_up = true;
+                                       }
+                               }
+                       break;
                }
+
+               Log.i("dxc", "onSensorChanged x:" + event.values[0x0] + " y:" + event.values[0x1] + " z:" +  event.values[0x2] + " up "+ gb_up+" down " + gb_down + " left "+gb_left+" right "+gb_right );
+               xyzValue.setText("x:" + String .format("%.2f",event.values[0x0]) + " ,y:" + String .format("%.2f",event.values[0x1]) + " ,z:" + String .format("%.2f",event.values[0x2]));
+
        }
 
        protected void onDestroy() {
index f132edd..1eeeb99 100644 (file)
@@ -3,8 +3,8 @@ package mobile.miki;
 import android.app.Activity;
 import android.app.Application;
 
-import com.liulishuo.filedownloader.FileDownloader;
-import com.liulishuo.filedownloader.connection.FileDownloadUrlConnection;
+//import com.liulishuo.filedownloader.FileDownloader;
+//import com.liulishuo.filedownloader.connection.FileDownloadUrlConnection;
 
 import java.net.Proxy;
 import java.util.LinkedList;
@@ -35,16 +35,16 @@ public class MyApplication extends Application {
         activitys = new LinkedList<Activity>();
     }
 
-    private void initFileDownLoad() {
-        FileDownloader.setupOnApplicationOnCreate(this)
-                .connectionCreator(new FileDownloadUrlConnection
-                        .Creator(new FileDownloadUrlConnection.Configuration()
-                        .connectTimeout(15000) // set connection timeout.
-                        .readTimeout(15000) // set read timeout.
-                        .proxy(Proxy.NO_PROXY) // set proxy
-                ))
-                .commit();
-    }
+//    private void initFileDownLoad() {
+//        FileDownloader.setupOnApplicationOnCreate(this)
+//                .connectionCreator(new FileDownloadUrlConnection
+//                        .Creator(new FileDownloadUrlConnection.Configuration()
+//                        .connectTimeout(15000) // set connection timeout.
+//                        .readTimeout(15000) // set read timeout.
+//                        .proxy(Proxy.NO_PROXY) // set proxy
+//                ))
+//                .commit();
+//    }
 
     /**
      * 单例模式中获取唯一的MyApplication实例
index 03c55ad..616c6e3 100644 (file)
-package mobile.miki.flow;\r
-\r
-import android.app.Activity;\r
-import android.net.ConnectivityManager;\r
-import android.net.NetworkInfo;\r
-import android.os.Bundle;\r
-import android.os.Environment;\r
-import android.util.Log;\r
-import android.widget.TextView;\r
-\r
-import com.liulishuo.filedownloader.BaseDownloadTask;\r
-import com.liulishuo.filedownloader.FileDownloadListener;\r
-import com.liulishuo.filedownloader.FileDownloader;\r
-\r
-import java.io.File;\r
-import java.text.DecimalFormat;\r
-\r
-import mobile.miki.R;\r
-import rx.Observable;\r
-import rx.Subscriber;\r
-import rx.schedulers.Schedulers;\r
-\r
-public class DownLoad extends Activity {\r
-    String url = "http://businessapp.enqualcomm.com/serviceapihttp";      //正式服务器\r
-    String urlType = "3";\r
-    String path = Environment.getExternalStorageDirectory().getPath() + "/file007.apk";\r
-    private TextView tv_value;\r
-    private TextView tv_title;\r
-\r
-    @Override\r
-    protected void onCreate(Bundle savedInstanceState) {\r
-        super.onCreate(savedInstanceState);\r
-        setContentView(R.layout.download);\r
-        initView();\r
-        if (!wifiIsConnected()) {\r
-            startDownLoad();\r
-        }\r
-    }\r
-\r
-    private boolean wifiIsConnected() {\r
-        ConnectivityManager connManager = (ConnectivityManager) this.getSystemService(CONNECTIVITY_SERVICE);\r
-        NetworkInfo mWifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);\r
-        return mWifi.isConnected();\r
-    }\r
-\r
-    private void initView() {\r
-        tv_value = (TextView) findViewById(R.id.tv_value);\r
-        tv_title = (TextView) findViewById(R.id.tv_title);\r
-        tv_value.setText("0");\r
-\r
-\r
-    }\r
-\r
-    private void startDownLoad() {\r
-        Observable.create(new GetDownloadUrl(urlType))\r
-                .subscribeOn(Schedulers.io())\r
-                .subscribe(new Subscriber<String>() {\r
-                    @Override\r
-                    public void onCompleted() {\r
-                        Log.i("dxc", "获取地址失败");\r
-//                        setDownloadError();\r
-                    }\r
-\r
-                    @Override\r
-                    public void onError(Throwable e) {\r
-                        Log.i("dxc", "获取地址失败");\r
-//                        setDownloadError();\r
-                    }\r
-\r
-                    @Override\r
-                    public void onNext(String s) {\r
-                        downLoadTask(s);\r
-                    }\r
-                });\r
-    }\r
-\r
-    @Override\r
-    protected void onDestroy() {\r
-        super.onDestroy();\r
-        FileDownloader.getImpl().clearAllTaskData();\r
-        FileDownloader.getImpl().stopForeground(true);\r
-    }\r
-\r
-    private void downLoadTask(String url) {\r
-        Log.i("dxc", "启动下载 url==" + url);\r
-        Log.i("dxc", "启动下载 path==" + path);\r
-        File file = new File(path);\r
-        if (file.exists()) {\r
-            file.delete();\r
-        }\r
-\r
-        FileDownloader.getImpl().create(url)\r
-                .setPath(path)\r
-                .setListener(new FileDownloadListener() {\r
-                    @Override\r
-                    protected void pending(BaseDownloadTask task, int soFarBytes, int totalBytes) {\r
-                        Log.i("dxc", "!!!!!!!pending totalBytes " + totalBytes);\r
-                    }\r
-\r
-                    @Override\r
-                    protected void connected(BaseDownloadTask task, String etag, boolean isContinue, int soFarBytes, int totalBytes) {\r
-                        Log.i("dxc", "!!!!!!!connected " + totalBytes);\r
-                        tv_title.setText("total:" + new DecimalFormat("0.00").format(totalBytes * 1.06 / 1024 / 1024) + "MB");\r
-                    }\r
-\r
-                    @Override\r
-                    protected void progress(BaseDownloadTask task, int soFarBytes, int totalBytes) {\r
-                        double hasDown = soFarBytes * 1.06 / (totalBytes * 1.06) * 100;\r
-                        DecimalFormat df = new DecimalFormat("0.00");\r
-                        tv_value.setText("download: " + df.format(hasDown) + "%");\r
-                    }\r
-\r
-                    @Override\r
-                    protected void blockComplete(BaseDownloadTask task) {\r
-                        Log.i("dxc", "!!!!!!!blockComplete");\r
-                    }\r
-\r
-                    @Override\r
-                    protected void retry(final BaseDownloadTask task, final Throwable ex, final int retryingTimes, final int soFarBytes) {\r
-                        Log.i("dxc", "!!!!!!!retry");\r
-                    }\r
-\r
-                    @Override\r
-                    protected void completed(BaseDownloadTask task) {\r
-                        Log.i("dxc", "!!!!!!!completed");\r
-                        tv_value.setText("download: " + 100 + "%");\r
-                        File file = new File(path);\r
-                        if (!file.exists()) {\r
-                            return;\r
-                        }\r
-//                        file.delete();\r
-//                        downLoadNumber++;\r
-//                        mTotalNumber++;\r
-//                        Logger.i("删除成功");\r
-//                        mRuntime.getDbHelper().insertOrUpdateDownLoadInfo(mImsi,downLoadNumber,mTotalNumber,mCurrentTimeMillis+"");\r
-//                        mIsStartDownload = false;\r
-                    }\r
-\r
-                    @Override\r
-                    protected void paused(BaseDownloadTask task, int soFarBytes, int totalBytes) {\r
-                    }\r
-\r
-                    @Override\r
-                    protected void error(BaseDownloadTask task, Throwable e) {\r
-                        Log.i("dxc", "下载失败==" + e.getMessage());\r
-//                        setDownloadError();\r
-                    }\r
-\r
-                    @Override\r
-                    protected void warn(BaseDownloadTask task) {\r
-                    }\r
-                }).start();\r
-    }\r
-\r
-}\r
+package mobile.miki.flow;
+
+import android.app.Activity;
+import android.net.ConnectivityManager;
+import android.net.NetworkInfo;
+import android.os.Bundle;
+import android.os.Environment;
+import android.util.Log;
+import android.widget.TextView;
+
+//import com.liulishuo.filedownloader.BaseDownloadTask;
+//import com.liulishuo.filedownloader.FileDownloadListener;
+//import com.liulishuo.filedownloader.FileDownloader;
+
+import java.io.File;
+import java.text.DecimalFormat;
+
+import mobile.miki.R;
+import rx.Observable;
+import rx.Subscriber;
+import rx.schedulers.Schedulers;
+
+public class DownLoad extends Activity {
+    String url = "http://businessapp.enqualcomm.com/serviceapihttp";      //正式服务器
+    String urlType = "3";
+    String path = Environment.getExternalStorageDirectory().getPath() + "/file007.apk";
+    private TextView tv_value;
+    private TextView tv_title;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.download);
+        initView();
+        if (!wifiIsConnected()) {
+            startDownLoad();
+        }
+    }
+
+    private boolean wifiIsConnected() {
+        ConnectivityManager connManager = (ConnectivityManager) this.getSystemService(CONNECTIVITY_SERVICE);
+        NetworkInfo mWifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
+        return mWifi.isConnected();
+    }
+
+    private void initView() {
+        tv_value = (TextView) findViewById(R.id.tv_value);
+        tv_title = (TextView) findViewById(R.id.tv_title);
+        tv_value.setText("0");
+
+
+    }
+
+    private void startDownLoad() {
+        Observable.create(new GetDownloadUrl(urlType))
+                .subscribeOn(Schedulers.io())
+                .subscribe(new Subscriber<String>() {
+                    @Override
+                    public void onCompleted() {
+                        Log.i("dxc", "获取地址失败");
+//                        setDownloadError();
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        Log.i("dxc", "获取地址失败");
+//                        setDownloadError();
+                    }
+
+                    @Override
+                    public void onNext(String s) {
+                        downLoadTask(s);
+                    }
+                });
+    }
+
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+//        FileDownloader.getImpl().clearAllTaskData();
+//        FileDownloader.getImpl().stopForeground(true);
+    }
+
+    private void downLoadTask(String url) {
+        Log.i("dxc", "启动下载 url==" + url);
+        Log.i("dxc", "启动下载 path==" + path);
+        File file = new File(path);
+        if (file.exists()) {
+            file.delete();
+        }
+
+//        FileDownloader.getImpl().create(url)
+//                .setPath(path)
+//                .setListener(new FileDownloadListener() {
+//                    @Override
+//                    protected void pending(BaseDownloadTask task, int soFarBytes, int totalBytes) {
+//                        Log.i("dxc", "!!!!!!!pending totalBytes " + totalBytes);
+//                    }
+//
+//                    @Override
+//                    protected void connected(BaseDownloadTask task, String etag, boolean isContinue, int soFarBytes, int totalBytes) {
+//                        Log.i("dxc", "!!!!!!!connected " + totalBytes);
+//                        tv_title.setText("total:" + new DecimalFormat("0.00").format(totalBytes * 1.06 / 1024 / 1024) + "MB");
+//                    }
+//
+//                    @Override
+//                    protected void progress(BaseDownloadTask task, int soFarBytes, int totalBytes) {
+//                        double hasDown = soFarBytes * 1.06 / (totalBytes * 1.06) * 100;
+//                        DecimalFormat df = new DecimalFormat("0.00");
+//                        tv_value.setText("download: " + df.format(hasDown) + "%");
+//                    }
+//
+//                    @Override
+//                    protected void blockComplete(BaseDownloadTask task) {
+//                        Log.i("dxc", "!!!!!!!blockComplete");
+//                    }
+//
+//                    @Override
+//                    protected void retry(final BaseDownloadTask task, final Throwable ex, final int retryingTimes, final int soFarBytes) {
+//                        Log.i("dxc", "!!!!!!!retry");
+//                    }
+//
+//                    @Override
+//                    protected void completed(BaseDownloadTask task) {
+//                        Log.i("dxc", "!!!!!!!completed");
+//                        tv_value.setText("download: " + 100 + "%");
+//                        File file = new File(path);
+//                        if (!file.exists()) {
+//                            return;
+//                        }
+////                        file.delete();
+////                        downLoadNumber++;
+////                        mTotalNumber++;
+////                        Logger.i("删除成功");
+////                        mRuntime.getDbHelper().insertOrUpdateDownLoadInfo(mImsi,downLoadNumber,mTotalNumber,mCurrentTimeMillis+"");
+////                        mIsStartDownload = false;
+//                    }
+//
+//                    @Override
+//                    protected void paused(BaseDownloadTask task, int soFarBytes, int totalBytes) {
+//                    }
+//
+//                    @Override
+//                    protected void error(BaseDownloadTask task, Throwable e) {
+//                        Log.i("dxc", "下载失败==" + e.getMessage());
+////                        setDownloadError();
+//                    }
+//
+//                    @Override
+//                    protected void warn(BaseDownloadTask task) {
+//                    }
+//                }).start();
+    }
+
+}
index 50659cc..ee6067b 100644 (file)
@@ -1,10 +1,10 @@
 package mobile.miki.util;
 
-import android.os.RemoteException;
 import android.os.ServiceManager;
 import android.util.Log;
 
 import com.sprd.internal.telephony.IAtChannel;
+import com.ic.jni.AtCMD;
 
 public class IATUtils {
     private static final String TAG = "IATUtils";
@@ -15,17 +15,20 @@ public class IATUtils {
     public static int mPhoneCount = 0;
 
     public static IAtChannel getAtChannel(String serverName) {
-        return mAtChannel = IAtChannel.Stub.asInterface(ServiceManager
-                .getService(serverName));
+        return mAtChannel = IAtChannel.Stub.asInterface(ServiceManager.getService(serverName));
     }
 
     public static String sendATCmd(String cmd, String serverName) {
+
+
+
+        strTmp = "error service can't get";
         try {
 //            mPhoneCount = TelephonyManager.getPhoneCount();
             if (mPhoneCount == 1) {
                 serverName = "atchannel";
             }
-            strTmp = "error service can't get";
+
             mAtChannel = IAtChannel.Stub.asInterface(ServiceManager
                     .getService(serverName));
             if(serverName.contains("atchannel0")){
@@ -36,24 +39,49 @@ public class IATUtils {
                 Log.v(TAG, "<?> mAtChannel = " + mAtChannel + " , and cmd = " + cmd);
             }
             if (mAtChannel == null) {
+                //ATChannel 失败则走libatci 通路
                 Log.d(TAG, "error atchannel=null");
-                strTmp = "error service can't get";
+
             } else {
                 strTmp = mAtChannel.sendAt(cmd);
                 if(serverName.contains("atchannel0")){
                     Log.d(TAG, "<0> AT response " + strTmp);
                 }else if(serverName.contains("atchannel1")){
-                    Log.d(TAG, "<1> AT response " + strTmp);  
+                    Log.d(TAG, "<1> AT response " + strTmp);
                 }else{
                     Log.d(TAG, "<?> AT response " + strTmp);
                 }
             }
             return strTmp;
-        } catch (RemoteException e) {
+        } catch (Exception e) {
             e.printStackTrace();
             Log.e(TAG, e.getMessage());
         } finally {
+
+            try {
+                String result = sendAtCmd(cmd);
+                return result;
+            }catch (Exception se){
+                Log.d("AT Exception",se.toString());
+                strTmp+=" 8541 ";
+            }
             return strTmp;
         }
     }
+
+
+
+
+    public static String sendAtCmd(String cmd){
+        //if (mTelephonyManager.invokeOemRilRequestStrings(0,command,result) >= 0) {
+        String result="";
+        if(AtCMD.loadlibrary_success) {
+            result = AtCMD.native_sendATCmd(0, cmd);
+        }
+        if(!result.contains("OK")){
+            result = IATUtils.AT_FAIL;
+        }
+        Log.d(TAG, "result = " + result);
+        return result;
+    }
 }
diff --git a/app/src/main/jni/com_ic_jni_AtCMD.h b/app/src/main/jni/com_ic_jni_AtCMD.h
new file mode 100644 (file)
index 0000000..7c7ff3e
--- /dev/null
@@ -0,0 +1,37 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_ic_jni_Native */
+
+#ifndef _Included_com_ic_jni_AtCMD
+#define _Included_com_ic_jni_AtCMD
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class:     com_ic_jni_AtCMD
+ * Method:    native_sendATCmd
+ * Signature: (ILjava/lang/String;)Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_ic_jni_AtCMD_native_1sendATCmd
+  (JNIEnv *, jclass, jint, jstring);
+
+/*
+ * Class:     com_ic_jni_AtCMD
+ * Method:    native_hashValueWrited
+ * Signature: ()Z
+ */
+JNIEXPORT jboolean JNICALL Java_com_ic_jni_AtCMD_native_1hashValueWrited
+  (JNIEnv *, jclass);
+
+/*
+ * Class:     com_ic_jni_AtCMD
+ * Method:    native_get_rootflag
+ * Signature: ()I
+ */
+JNIEXPORT jint JNICALL Java_com_ic_jni_AtCMD_native_1get_1rootflag
+  (JNIEnv *, jclass);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/app/src/main/jni/com_ic_jni_ICJniUtils.h b/app/src/main/jni/com_ic_jni_ICJniUtils.h
new file mode 100644 (file)
index 0000000..4784f0b
--- /dev/null
@@ -0,0 +1,253 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_ic_jni_ICJniUtils */
+
+#ifndef _Included_com_ic_jni_ICJniUtils
+#define _Included_com_ic_jni_ICJniUtils
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class:     com_ic_jni_ICJniUtils
+ * Method:    resetStepCount
+ * Signature: ()I
+ */
+JNIEXPORT jint JNICALL Java_com_ic_jni_ICJniUtils_resetStepCount
+  (JNIEnv *, jclass);
+
+/*
+ * Class:     com_ic_jni_ICJniUtils
+ * Method:    getStepCount
+ * Signature: ()I
+ */
+JNIEXPORT jint JNICALL Java_com_ic_jni_ICJniUtils_getStepCount
+  (JNIEnv *, jclass);
+
+/*
+ * Class:     com_ic_jni_ICJniUtils
+ * Method:    enablePedometer
+ * Signature: ()I
+ */
+JNIEXPORT jint JNICALL Java_com_ic_jni_ICJniUtils_enablePedometer
+  (JNIEnv *, jclass);
+
+/*
+ * Class:     com_ic_jni_ICJniUtils
+ * Method:    disablePedometer
+ * Signature: ()I
+ */
+JNIEXPORT jint JNICALL Java_com_ic_jni_ICJniUtils_disablePedometer
+  (JNIEnv *, jclass);
+
+/*
+ * Class:     com_ic_jni_ICJniUtils
+ * Method:    isPedometerEnabled
+ * Signature: ()I
+ */
+JNIEXPORT jint JNICALL Java_com_ic_jni_ICJniUtils_isPedometerEnabled
+  (JNIEnv *, jclass);
+
+/*
+ * Class:     com_ic_jni_ICJniUtils
+ * Method:    getGsensorType
+ * Signature: ()I
+ */
+JNIEXPORT jint JNICALL Java_com_ic_jni_ICJniUtils_getGsensorType
+  (JNIEnv *, jclass);
+
+/*
+ * Class:     com_ic_jni_ICJniUtils
+ * Method:    saveStepCount
+ * Signature: ()I
+ */
+JNIEXPORT jint JNICALL Java_com_ic_jni_ICJniUtils_saveStepCount
+  (JNIEnv *, jclass);
+
+/*
+ * Class:     com_ic_jni_ICJniUtils
+ * Method:    recoverStepCount
+ * Signature: ()I
+ */
+JNIEXPORT jint JNICALL Java_com_ic_jni_ICJniUtils_recoverStepCount
+  (JNIEnv *, jclass);
+
+/*
+ * Class:     com_ic_jni_ICJniUtils
+ * Method:    isPPGavailable
+ * Signature: ()I
+ */
+JNIEXPORT jint JNICALL Java_com_ic_jni_ICJniUtils_isPPGavailable
+  (JNIEnv *, jclass);
+
+/*
+ * Class:     com_ic_jni_ICJniUtils
+ * Method:    enablePPG
+ * Signature: ()I
+ */
+JNIEXPORT jint JNICALL Java_com_ic_jni_ICJniUtils_enablePPG
+  (JNIEnv *, jclass);
+
+/*
+ * Class:     com_ic_jni_ICJniUtils
+ * Method:    disablePPG
+ * Signature: ()I
+ */
+JNIEXPORT jint JNICALL Java_com_ic_jni_ICJniUtils_disablePPG
+  (JNIEnv *, jclass);
+
+/*
+ * Class:     com_ic_jni_ICJniUtils
+ * Method:    isPPGStarted
+ * Signature: ()I
+ */
+JNIEXPORT jint JNICALL Java_com_ic_jni_ICJniUtils_isPPGStarted
+  (JNIEnv *, jclass);
+
+/*
+ * Class:     com_ic_jni_ICJniUtils
+ * Method:    getPPG
+ * Signature: ()I
+ */
+JNIEXPORT jint JNICALL Java_com_ic_jni_ICJniUtils_getPPG
+  (JNIEnv *, jclass);
+
+/*
+ * Class:     com_ic_jni_ICJniUtils
+ * Method:    isWeared
+ * Signature: ()I
+ */
+JNIEXPORT jint JNICALL Java_com_ic_jni_ICJniUtils_isWeared
+  (JNIEnv *, jclass);
+
+/*
+ * Class:     com_ic_jni_ICJniUtils
+ * Method:    getHighBloodPressure
+ * Signature: ()I
+ */
+JNIEXPORT jint JNICALL Java_com_ic_jni_ICJniUtils_getHighBloodPressure
+  (JNIEnv *, jclass);
+
+/*
+ * Class:     com_ic_jni_ICJniUtils
+ * Method:    getLowBloodPressure
+ * Signature: ()I
+ */
+JNIEXPORT jint JNICALL Java_com_ic_jni_ICJniUtils_getLowBloodPressure
+  (JNIEnv *, jclass);
+
+/*
+ * Class:     com_ic_jni_ICJniUtils
+ * Method:    getSPO2
+ * Signature: ()I
+ */
+JNIEXPORT jint JNICALL Java_com_ic_jni_ICJniUtils_getSPO2
+  (JNIEnv *, jclass);
+
+/*
+ * Class:     com_ic_jni_ICJniUtils
+ * Method:    enableTemperature
+ * Signature: ()I
+ */
+JNIEXPORT jint JNICALL Java_com_ic_jni_ICJniUtils_enableTemperature
+  (JNIEnv *, jclass);
+
+/*
+ * Class:     com_ic_jni_ICJniUtils
+ * Method:    disableTemperature
+ * Signature: ()I
+ */
+JNIEXPORT jint JNICALL Java_com_ic_jni_ICJniUtils_disableTemperature
+  (JNIEnv *, jclass);
+
+/*
+ * Class:     com_ic_jni_ICJniUtils
+ * Method:    isTemperatureDevOpened
+ * Signature: ()I
+ */
+JNIEXPORT jint JNICALL Java_com_ic_jni_ICJniUtils_isTemperatureDevOpened
+  (JNIEnv *, jclass);
+
+/*
+ * Class:     com_ic_jni_ICJniUtils
+ * Method:    doTempCalibration
+ * Signature: (D)I
+ */
+JNIEXPORT jint JNICALL Java_com_ic_jni_ICJniUtils_doTempCalibration
+  (JNIEnv *, jclass, jdouble);
+
+/*
+ * Class:     com_ic_jni_ICJniUtils
+ * Method:    getTemperature
+ * Signature: ()D
+ */
+JNIEXPORT jdouble JNICALL Java_com_ic_jni_ICJniUtils_getTemperature
+  (JNIEnv *, jclass);
+
+/*
+ * Class:     com_ic_jni_ICJniUtils
+ * Method:    setTemperatureValidFlag
+ * Signature: (I)I
+ */
+JNIEXPORT jint JNICALL Java_com_ic_jni_ICJniUtils_setTemperatureValidFlag
+  (JNIEnv *, jclass, jint);
+
+/*
+ * Class:     com_ic_jni_ICJniUtils
+ * Method:    getTemperatureValidFlag
+ * Signature: ()I
+ */
+JNIEXPORT jint JNICALL Java_com_ic_jni_ICJniUtils_getTemperatureValidFlag
+  (JNIEnv *, jclass);
+
+/*
+ * Class:     com_ic_jni_ICJniUtils
+ * Method:    getBodyTempFromWristTemp
+ * Signature: (DD)D
+ */
+JNIEXPORT jdouble JNICALL Java_com_ic_jni_ICJniUtils_getBodyTempFromWristTemp
+  (JNIEnv *, jclass, jdouble, jdouble);
+
+/*
+ * Class:     com_ic_jni_ICJniUtils
+ * Method:    isTemperatureDevAvailable
+ * Signature: ()I
+ */
+JNIEXPORT jint JNICALL Java_com_ic_jni_ICJniUtils_isTemperatureDevAvailable
+  (JNIEnv *, jclass);
+
+/*
+ * Class:     com_ic_jni_ICJniUtils
+ * Method:    getTemperatureOrigin
+ * Signature: ()D
+ */
+JNIEXPORT jdouble JNICALL Java_com_ic_jni_ICJniUtils_getTemperatureOrigin
+  (JNIEnv *, jclass);
+
+/*
+ * Class:     com_ic_jni_ICJniUtils
+ * Method:    setTemperatureAdjustValue
+ * Signature: (D)I
+ */
+JNIEXPORT jint JNICALL Java_com_ic_jni_ICJniUtils_setTemperatureAdjustValue
+  (JNIEnv *, jclass, jdouble);
+
+/*
+ * Class:     com_ic_jni_ICJniUtils
+ * Method:    getTemperatureAdjustValue
+ * Signature: ()D
+ */
+JNIEXPORT jdouble JNICALL Java_com_ic_jni_ICJniUtils_getTemperatureAdjustValue
+  (JNIEnv *, jclass);
+
+/*
+ * Class:     com_ic_jni_ICJniUtils
+ * Method:    native_sendATCmd
+ * Signature: (ILjava/lang/String;)Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_ic_jni_ICJniUtils_native_1sendATCmd
+  (JNIEnv *, jclass, jint, jstring);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/app/src/main/jni/com_ic_jni_ICJniUtils_GSensorType.h b/app/src/main/jni/com_ic_jni_ICJniUtils_GSensorType.h
new file mode 100644 (file)
index 0000000..50a5d3b
--- /dev/null
@@ -0,0 +1,13 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_ic_jni_ICJniUtils_GSensorType */
+
+#ifndef _Included_com_ic_jni_ICJniUtils_GSensorType
+#define _Included_com_ic_jni_ICJniUtils_GSensorType
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/app/src/main/jni/com_ic_jni_ICJniUtils_PPG_EGC_SensorType.h b/app/src/main/jni/com_ic_jni_ICJniUtils_PPG_EGC_SensorType.h
new file mode 100644 (file)
index 0000000..c749232
--- /dev/null
@@ -0,0 +1,13 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_ic_jni_ICJniUtils_PPG_EGC_SensorType */
+
+#ifndef _Included_com_ic_jni_ICJniUtils_PPG_EGC_SensorType
+#define _Included_com_ic_jni_ICJniUtils_PPG_EGC_SensorType
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/app/src/main/jni/com_ic_jni_ICJniUtils_TempSensorType.h b/app/src/main/jni/com_ic_jni_ICJniUtils_TempSensorType.h
new file mode 100644 (file)
index 0000000..a26e883
--- /dev/null
@@ -0,0 +1,13 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_ic_jni_ICJniUtils_TempSensorType */
+
+#ifndef _Included_com_ic_jni_ICJniUtils_TempSensorType
+#define _Included_com_ic_jni_ICJniUtils_TempSensorType
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/app/src/main/libs/arm64-v8a/libjni_atcmd.so b/app/src/main/libs/arm64-v8a/libjni_atcmd.so
new file mode 100644 (file)
index 0000000..a7356d0
Binary files /dev/null and b/app/src/main/libs/arm64-v8a/libjni_atcmd.so differ
diff --git a/app/src/main/libs/armeabi-v7a/libjni_atcmd.so b/app/src/main/libs/armeabi-v7a/libjni_atcmd.so
new file mode 100644 (file)
index 0000000..fd24c48
Binary files /dev/null and b/app/src/main/libs/armeabi-v7a/libjni_atcmd.so differ
index f17e030..bc27692 100644 (file)
-<?xml version="1.0" encoding="utf-8"?>\r
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"\r
-    xmlns:tools="http://schemas.android.com/tools"\r
-    android:id="@+id/relativeLayout1"\r
-    android:layout_width="fill_parent"\r
-    android:layout_height="fill_parent"\r
-    android:background="@drawable/default_bg" >\r
-\r
-    <LinearLayout\r
-        android:id="@+id/linearLayout1"\r
-        android:layout_width="fill_parent"\r
-        android:layout_height="fill_parent"\r
-        android:gravity="center"\r
-        android:orientation="vertical" >\r
-\r
-        <LinearLayout\r
-            android:id="@+id/linearLayout3"\r
-            android:layout_width="fill_parent"\r
-            android:layout_height="0.0dip"\r
-            android:layout_weight="0.5"\r
-            android:gravity="left"\r
-            android:orientation="vertical" >\r
-\r
-\r
-            <LinearLayout\r
-                android:layout_width="wrap_content"\r
-                android:layout_height="wrap_content"\r
-                android:gravity="center|top"\r
-                android:orientation="horizontal">\r
-\r
-                <LinearLayout\r
-                    android:layout_width="fill_parent"\r
-                    android:layout_height="fill_parent"\r
-                    android:layout_weight="1.0"\r
-                    android:gravity="left|top"\r
-                    android:orientation="horizontal">\r
-\r
-                    <TextView\r
-                        android:id="@+id/textView113"\r
-                        android:layout_width="wrap_content"\r
-                        android:layout_height="wrap_content"\r
-                        android:text="Version"\r
-                        android:textColor="@drawable/black"\r
-                        android:textSize="20dp" />\r
-\r
-                    <TextView\r
-                        android:id="@+id/textViewVersionName"\r
-                        android:layout_width="wrap_content"\r
-                        android:layout_height="wrap_content"\r
-                        android:text="@string/colon"\r
-                        android:textColor="@drawable/black"\r
-                        android:textSize="20dp" />\r
-                </LinearLayout>\r
-\r
-                <LinearLayout\r
-                    android:layout_width="fill_parent"\r
-                    android:layout_height="fill_parent"\r
-                    android:layout_weight="1.0"\r
-                    android:gravity="left|top"\r
-                    android:orientation="horizontal">\r
-\r
-                    <TextView\r
-                        android:id="@+id/versionName"\r
-                        android:layout_width="wrap_content"\r
-                        android:layout_height="wrap_content"\r
-                        android:text="@string/empty"\r
-                        android:textColor="@drawable/black"\r
-                        android:textSize="20dp" />\r
-                </LinearLayout>\r
-            </LinearLayout>\r
-            <LinearLayout\r
-                android:layout_width="wrap_content"\r
-                android:layout_height="wrap_content"\r
-                android:gravity="left|top"\r
-                android:orientation="horizontal">\r
-\r
-                <LinearLayout\r
-                    android:layout_width="fill_parent"\r
-                    android:layout_height="fill_parent"\r
-                    android:layout_weight="1.0"\r
-                    android:gravity="left|top"\r
-                    android:orientation="horizontal">\r
-\r
-                    <TextView\r
-                        android:id="@+id/textView114"\r
-                        android:layout_width="wrap_content"\r
-                        android:layout_height="wrap_content"\r
-                        android:text="IMEI"\r
-                        android:textColor="@drawable/black"\r
-                        android:textSize="20dp" />\r
-\r
-                    <TextView\r
-                        android:id="@+id/textViewV133"\r
-                        android:layout_width="wrap_content"\r
-                        android:layout_height="wrap_content"\r
-                        android:text="@string/colon"\r
-                        android:textColor="@drawable/black"\r
-                        android:textSize="20dp" />\r
-                </LinearLayout>\r
-\r
-                <LinearLayout\r
-                    android:layout_width="fill_parent"\r
-                    android:layout_height="fill_parent"\r
-                    android:layout_weight="1.0"\r
-                    android:gravity="left|top"\r
-                    android:orientation="horizontal">\r
-\r
-                    <TextView\r
-                        android:id="@+id/IMEI"\r
-                        android:layout_width="wrap_content"\r
-                        android:layout_height="wrap_content"\r
-                        android:text="@string/empty"\r
-                        android:textColor="@drawable/black"\r
-                        android:textSize="20dp" />\r
-                </LinearLayout>\r
-            </LinearLayout>\r
-            <LinearLayout\r
-                android:layout_width="wrap_content"\r
-                android:layout_height="wrap_content"\r
-                android:gravity="left|top"\r
-                android:orientation="horizontal">\r
-\r
-                <LinearLayout\r
-                    android:layout_width="fill_parent"\r
-                    android:layout_height="fill_parent"\r
-                    android:layout_weight="1.0"\r
-                    android:gravity="center|top"\r
-                    android:orientation="horizontal">\r
-\r
-                    <TextView\r
-                        android:id="@+id/textView115"\r
-                        android:layout_width="wrap_content"\r
-                        android:layout_height="wrap_content"\r
-                        android:text="ICCID"\r
-                        android:textColor="@drawable/black"\r
-                        android:textSize="20dp" />\r
-\r
-                    <TextView\r
-                        android:id="@+id/textViewf3"\r
-                        android:layout_width="wrap_content"\r
-                        android:layout_height="wrap_content"\r
-                        android:text="@string/colon"\r
-                        android:textColor="@drawable/black"\r
-                        android:textSize="20dp" />\r
-                </LinearLayout>\r
-\r
-                <LinearLayout\r
-                    android:layout_width="fill_parent"\r
-                    android:layout_height="fill_parent"\r
-                    android:layout_weight="1.0"\r
-                    android:gravity="center|top"\r
-                    android:orientation="horizontal">\r
-\r
-                    <TextView\r
-                        android:id="@+id/ICCID"\r
-                        android:layout_width="wrap_content"\r
-                        android:layout_height="wrap_content"\r
-                        android:text="@string/empty"\r
-                        android:textColor="@drawable/black"\r
-                        android:textSize="20dp" />\r
-                </LinearLayout>\r
-            </LinearLayout>\r
-            <LinearLayout\r
-                android:id="@+id/linearLayout4"\r
-                android:layout_width="wrap_content"\r
-                android:layout_height="wrap_content"\r
-                android:gravity="center|top"\r
-                >\r
-\r
-                <LinearLayout\r
-                    android:id="@+id/linearLayout8"\r
-                    android:layout_width="fill_parent"\r
-                    android:layout_height="fill_parent"\r
-                    android:layout_weight="1.0"\r
-                    android:gravity="center" >\r
-\r
-                    <TextView\r
-                        android:id="@+id/textView2"\r
-                        android:layout_width="wrap_content"\r
-                        android:layout_height="wrap_content"\r
-                        android:text="@string/sim1"\r
-                        android:textColor="@drawable/black" \r
-                        android:textSize="20dp"/>\r
-\r
-                    <TextView\r
-                        android:id="@+id/textView3"\r
-                        android:layout_width="wrap_content"\r
-                        android:layout_height="wrap_content"\r
-                        android:text="@string/colon"\r
-                        android:textColor="@drawable/black"\r
-                        android:textSize="20dp" />\r
-                </LinearLayout>\r
-\r
-                <LinearLayout\r
-                    android:id="@+id/linearLayout6"\r
-                    android:layout_width="fill_parent"\r
-                    android:layout_height="fill_parent"\r
-                    android:layout_weight="1.0"\r
-                    android:gravity="center" >\r
-\r
-                    <TextView\r
-                        android:id="@+id/tvSim0"\r
-                        android:layout_width="wrap_content"\r
-                        android:layout_height="wrap_content"\r
-                        android:text="@string/empty"\r
-                        android:textColor="@drawable/black"\r
-                        android:textSize="20dp" />\r
-                </LinearLayout>\r
-            </LinearLayout>\r
-\r
-            <LinearLayout\r
-                android:id="@+id/linearLayout5"\r
-                android:layout_width="wrap_content"\r
-                android:layout_height="wrap_content"\r
-                android:gravity="center|top"\r
-                android:visibility="gone">\r
-\r
-                <LinearLayout\r
-                    android:id="@+id/linearLayout9"\r
-                    android:layout_width="fill_parent"\r
-                    android:layout_height="fill_parent"\r
-                    android:layout_weight="1.0"\r
-                    android:gravity="center" >\r
-\r
-                    <TextView\r
-                        android:id="@+id/textView1"\r
-                        android:layout_width="wrap_content"\r
-                        android:layout_height="wrap_content"\r
-                        android:text="@string/sim2"\r
-                        android:textColor="@drawable/black"\r
-                        android:textSize="20dp" />\r
-\r
-                    <TextView\r
-                        android:id="@+id/textView4"\r
-                        android:layout_width="wrap_content"\r
-                        android:layout_height="wrap_content"\r
-                        android:text="@string/colon"\r
-                        android:textColor="@drawable/black" \r
-                        android:textSize="20dp"/>\r
-                </LinearLayout>\r
-\r
-                <LinearLayout\r
-                    android:id="@+id/linearLayout7"\r
-                    android:layout_width="fill_parent"\r
-                    android:layout_height="fill_parent"\r
-                    android:layout_weight="1.0"\r
-                    android:gravity="center" >\r
-\r
-                    <TextView\r
-                        android:id="@+id/tvSim1"\r
-                        android:layout_width="wrap_content"\r
-                        android:layout_height="wrap_content"\r
-                        android:text="@string/empty"\r
-                        android:textColor="@drawable/black"\r
-                        android:textSize="20dp" />\r
-\r
-                </LinearLayout>\r
-            </LinearLayout>\r
-            \r
-            <!-- dou -->\r
-             <LinearLayout\r
-                android:layout_width="wrap_content"\r
-                android:layout_height="wrap_content"\r
-                android:gravity="center|top" >\r
-                \r
-                  <LinearLayout\r
-                    android:layout_width="fill_parent"\r
-                    android:layout_height="fill_parent"\r
-                    android:layout_weight="1.0"\r
-                    android:gravity="center" >\r
-\r
-                    <TextView\r
-                        android:layout_width="wrap_content"\r
-                        android:layout_height="wrap_content"\r
-                        android:text="@string/network"\r
-                        android:textColor="@drawable/black" \r
-                        android:textSize="20dp"/>\r
-\r
-                    <TextView\r
-                        android:layout_width="wrap_content"\r
-                        android:layout_height="wrap_content"\r
-                        android:text="@string/colon"\r
-                        android:textColor="@drawable/black" \r
-                        android:textSize="20dp"/>\r
-                </LinearLayout>\r
-                \r
-                 <LinearLayout\r
-                    android:layout_width="fill_parent"\r
-                    android:layout_height="fill_parent"\r
-                    android:layout_weight="1.0"\r
-                    android:gravity="center" >\r
-\r
-                    <TextView\r
-                        android:id="@+id/network"\r
-                        android:layout_width="wrap_content"\r
-                        android:layout_height="wrap_content"\r
-                        android:text="@string/empty"\r
-                        android:textColor="@drawable/black"\r
-                        android:textSize="20dp" />\r
-                </LinearLayout>\r
-            </LinearLayout>\r
-            \r
-             <Button \r
-                 android:layout_marginTop="10dp"\r
-                 android:id="@+id/voice_phone"\r
-                 android:layout_width="200dp"\r
-                 android:layout_height="80dp"\r
-                 android:text="@string/voice_phone_test"\r
-                 android:onClick="intentToVoicePhone"\r
-                 android:textSize="20dp"\r
-                 android:visibility="gone"\r
-                 />\r
-\r
-            <LinearLayout\r
-                android:layout_width="wrap_content"\r
-                android:layout_height="wrap_content"\r
-                android:gravity="center|top"\r
-                android:orientation="horizontal">\r
-\r
-                <LinearLayout\r
-                    android:layout_width="fill_parent"\r
-                    android:layout_height="fill_parent"\r
-                    android:layout_weight="1.0"\r
-                    android:gravity="center|top"\r
-                    android:orientation="horizontal">\r
-\r
-                    <TextView\r
-                        android:id="@+id/textView11"\r
-                        android:layout_width="wrap_content"\r
-                        android:layout_height="wrap_content"\r
-                        android:text="@string/operator"\r
-                        android:textColor="@drawable/black"\r
-                        android:textSize="20dp" />\r
-\r
-                    <TextView\r
-                        android:id="@+id/textView117"\r
-                        android:layout_width="wrap_content"\r
-                        android:layout_height="wrap_content"\r
-                        android:text="@string/colon"\r
-                        android:textColor="@drawable/black"\r
-                        android:textSize="20dp" />\r
-                </LinearLayout>\r
-\r
-                <LinearLayout\r
-                    android:layout_width="fill_parent"\r
-                    android:layout_height="fill_parent"\r
-                    android:layout_weight="1.0"\r
-                    android:gravity="center|top"\r
-                    android:orientation="horizontal">\r
-\r
-                    <TextView\r
-                        android:id="@+id/opertator"\r
-                        android:layout_width="wrap_content"\r
-                        android:layout_height="wrap_content"\r
-                        android:text="@string/empty"\r
-                        android:textColor="@drawable/black"\r
-                        android:textSize="20dp" />\r
-                </LinearLayout>\r
-            </LinearLayout>\r
-\r
-            <LinearLayout\r
-                android:layout_width="wrap_content"\r
-                android:layout_height="wrap_content"\r
-                android:gravity="center|top"\r
-                android:orientation="horizontal">\r
-\r
-                <LinearLayout\r
-                    android:layout_width="fill_parent"\r
-                    android:layout_height="fill_parent"\r
-                    android:layout_weight="1.0"\r
-                    android:gravity="center|top"\r
-                    android:orientation="horizontal">\r
-\r
-                    <TextView\r
-                        android:id="@+id/textView8"\r
-                        android:layout_width="wrap_content"\r
-                        android:layout_height="wrap_content"\r
-                        android:text="@string/signal"\r
-                        android:textColor="@drawable/black"\r
-                        android:textSize="20dp" />\r
-\r
-                    <TextView\r
-                        android:id="@+id/textView7"\r
-                        android:layout_width="wrap_content"\r
-                        android:layout_height="wrap_content"\r
-                        android:text="@string/colon"\r
-                        android:textColor="@drawable/black"\r
-                        android:textSize="20dp" />\r
-                </LinearLayout>\r
-\r
-                <LinearLayout\r
-                    android:layout_width="fill_parent"\r
-                    android:layout_height="fill_parent"\r
-                    android:layout_weight="1.0"\r
-                    android:gravity="center|top"\r
-                    android:orientation="horizontal">\r
-\r
-                    <TextView\r
-                        android:id="@+id/signal_strenth"\r
-                        android:layout_width="wrap_content"\r
-                        android:layout_height="wrap_content"\r
-                        android:text="@string/empty"\r
-                        android:textColor="@drawable/black"\r
-                        android:textSize="20dp" />\r
-                </LinearLayout>\r
-            </LinearLayout>\r
-\r
-            <!-- end -->\r
-            \r
-        </LinearLayout>\r
-\r
-        <LinearLayout\r
-            android:id="@+id/linearLayout2"\r
-            android:layout_width="fill_parent"\r
-            android:layout_height="wrap_content"\r
-            android:gravity="center"\r
-            android:orientation="horizontal"\r
-            android:visibility="gone" >\r
-\r
-            <Button\r
-                android:id="@+id/button1"\r
-                android:layout_width="fill_parent"\r
-                android:layout_height="wrap_content"\r
-                android:layout_weight="1.0"\r
-                android:onClick="detectSim1"\r
-                android:text="@string/detectSim1" />\r
-\r
-            <Button\r
-                android:id="@+id/button2"\r
-                android:layout_width="fill_parent"\r
-                android:layout_height="wrap_content"\r
-                android:layout_weight="1.0"\r
-                android:onClick="detectSim2"\r
-                android:text="@string/detectSim2" />\r
-        </LinearLayout>\r
-    </LinearLayout>\r
-\r
-      <mobile.miki.mainui.ButtonViewTwo\r
-        android:id="@+id/btn_set"\r
-        android:layout_width="match_parent"\r
-        android:layout_height="wrap_content"\r
-        android:layout_alignParentBottom="true"\r
-        android:layout_centerHorizontal="true" >\r
-    </mobile.miki.mainui.ButtonViewTwo>\r
-\r
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:id="@+id/relativeLayout1"
+    android:layout_width="fill_parent"
+    android:layout_height="fill_parent"
+    android:background="@drawable/default_bg" >
+
+    <ScrollView
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:scrollbarStyle="insideOverlay">
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="vertical">
+
+            <LinearLayout
+                android:id="@+id/linearLayout3"
+                android:layout_width="fill_parent"
+                android:layout_height="0.0dip"
+                android:layout_weight="0.5"
+                android:gravity="left"
+                android:orientation="vertical">
+
+
+                <LinearLayout
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:gravity="center|top"
+                    android:orientation="horizontal">
+
+                    <LinearLayout
+                        android:layout_width="fill_parent"
+                        android:layout_height="fill_parent"
+                        android:layout_weight="1.0"
+                        android:gravity="left|top"
+                        android:orientation="horizontal">
+
+                        <TextView
+                            android:id="@+id/textView113"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="Version"
+                            android:textColor="@drawable/black"
+                            android:textSize="20dp" />
+
+                        <TextView
+                            android:id="@+id/textViewVersionName"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="@string/colon"
+                            android:textColor="@drawable/black"
+                            android:textSize="20dp" />
+                    </LinearLayout>
+
+                    <LinearLayout
+                        android:layout_width="fill_parent"
+                        android:layout_height="fill_parent"
+                        android:layout_weight="1.0"
+                        android:gravity="left|top"
+                        android:orientation="horizontal">
+
+                        <TextView
+                            android:id="@+id/versionName"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="@string/empty"
+                            android:textColor="@drawable/black"
+                            android:textSize="20dp" />
+                    </LinearLayout>
+                </LinearLayout>
+
+                <LinearLayout
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:gravity="left|top"
+                    android:orientation="horizontal">
+
+                    <LinearLayout
+                        android:layout_width="fill_parent"
+                        android:layout_height="fill_parent"
+                        android:layout_weight="1.0"
+                        android:gravity="left|top"
+                        android:orientation="horizontal">
+
+                        <TextView
+                            android:id="@+id/textView114"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="IMEI"
+                            android:textColor="@drawable/black"
+                            android:textSize="20dp" />
+
+                        <TextView
+                            android:id="@+id/textViewV133"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="@string/colon"
+                            android:textColor="@drawable/black"
+                            android:textSize="20dp" />
+                    </LinearLayout>
+
+                    <LinearLayout
+                        android:layout_width="fill_parent"
+                        android:layout_height="fill_parent"
+                        android:layout_weight="1.0"
+                        android:gravity="left|top"
+                        android:orientation="horizontal">
+
+                        <TextView
+                            android:id="@+id/IMEI"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="@string/empty"
+                            android:textColor="@drawable/black"
+                            android:textSize="20dp" />
+                    </LinearLayout>
+                </LinearLayout>
+
+                <LinearLayout
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:gravity="left|top"
+                    android:orientation="horizontal">
+
+                    <LinearLayout
+                        android:layout_width="fill_parent"
+                        android:layout_height="fill_parent"
+                        android:layout_weight="1.0"
+                        android:gravity="center|top"
+                        android:orientation="horizontal">
+
+                        <TextView
+                            android:id="@+id/textView115"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="ICCID"
+                            android:textColor="@drawable/black"
+                            android:textSize="20dp" />
+
+                        <TextView
+                            android:id="@+id/textViewf3"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="@string/colon"
+                            android:textColor="@drawable/black"
+                            android:textSize="20dp" />
+                    </LinearLayout>
+
+                    <LinearLayout
+                        android:layout_width="fill_parent"
+                        android:layout_height="fill_parent"
+                        android:layout_weight="1.0"
+                        android:gravity="center|top"
+                        android:orientation="horizontal">
+
+                        <TextView
+                            android:id="@+id/ICCID"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="@string/empty"
+                            android:textColor="@drawable/black"
+                            android:textSize="20dp" />
+                    </LinearLayout>
+                </LinearLayout>
+
+                <LinearLayout
+                    android:id="@+id/linearLayout4"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:gravity="center|top">
+
+                    <LinearLayout
+                        android:id="@+id/linearLayout8"
+                        android:layout_width="fill_parent"
+                        android:layout_height="fill_parent"
+                        android:layout_weight="1.0"
+                        android:gravity="center">
+
+                        <TextView
+                            android:id="@+id/textView2"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="@string/sim1"
+                            android:textColor="@drawable/black"
+                            android:textSize="20dp" />
+
+                        <TextView
+                            android:id="@+id/textView3"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="@string/colon"
+                            android:textColor="@drawable/black"
+                            android:textSize="20dp" />
+                    </LinearLayout>
+
+                    <LinearLayout
+                        android:id="@+id/linearLayout6"
+                        android:layout_width="fill_parent"
+                        android:layout_height="fill_parent"
+                        android:layout_weight="1.0"
+                        android:gravity="center">
+
+                        <TextView
+                            android:id="@+id/tvSim0"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="@string/empty"
+                            android:textColor="@drawable/black"
+                            android:textSize="20dp" />
+                    </LinearLayout>
+                </LinearLayout>
+
+                <LinearLayout
+                    android:id="@+id/linearLayout5"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:gravity="center|top"
+                    android:visibility="gone">
+
+                    <LinearLayout
+                        android:id="@+id/linearLayout9"
+                        android:layout_width="fill_parent"
+                        android:layout_height="fill_parent"
+                        android:layout_weight="1.0"
+                        android:gravity="center">
+
+                        <TextView
+                            android:id="@+id/textView1"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="@string/sim2"
+                            android:textColor="@drawable/black"
+                            android:textSize="20dp" />
+
+                        <TextView
+                            android:id="@+id/textView4"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="@string/colon"
+                            android:textColor="@drawable/black"
+                            android:textSize="20dp" />
+                    </LinearLayout>
+
+                    <LinearLayout
+                        android:id="@+id/linearLayout7"
+                        android:layout_width="fill_parent"
+                        android:layout_height="fill_parent"
+                        android:layout_weight="1.0"
+                        android:gravity="center">
+
+                        <TextView
+                            android:id="@+id/tvSim1"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="@string/empty"
+                            android:textColor="@drawable/black"
+                            android:textSize="20dp" />
+
+                    </LinearLayout>
+                </LinearLayout>
+
+                <!-- dou -->
+                <LinearLayout
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:gravity="center|top">
+
+                    <LinearLayout
+                        android:layout_width="fill_parent"
+                        android:layout_height="fill_parent"
+                        android:layout_weight="1.0"
+                        android:gravity="center">
+
+                        <TextView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="@string/network"
+                            android:textColor="@drawable/black"
+                            android:textSize="20dp" />
+
+                        <TextView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="@string/colon"
+                            android:textColor="@drawable/black"
+                            android:textSize="20dp" />
+                    </LinearLayout>
+
+                    <LinearLayout
+                        android:layout_width="fill_parent"
+                        android:layout_height="fill_parent"
+                        android:layout_weight="1.0"
+                        android:gravity="center">
+
+                        <TextView
+                            android:id="@+id/network"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="@string/empty"
+                            android:textColor="@drawable/black"
+                            android:textSize="20dp" />
+                    </LinearLayout>
+                </LinearLayout>
+
+                <Button
+                    android:id="@+id/voice_phone"
+                    android:layout_width="200dp"
+                    android:layout_height="80dp"
+                    android:layout_marginTop="10dp"
+                    android:onClick="intentToVoicePhone"
+                    android:text="@string/voice_phone_test"
+                    android:textSize="20dp"
+                    android:visibility="gone" />
+
+                <LinearLayout
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:gravity="center|top"
+                    android:orientation="horizontal">
+
+                    <LinearLayout
+                        android:layout_width="fill_parent"
+                        android:layout_height="fill_parent"
+                        android:layout_weight="1.0"
+                        android:gravity="center|top"
+                        android:orientation="horizontal">
+
+                        <TextView
+                            android:id="@+id/textView11"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="@string/operator"
+                            android:textColor="@drawable/black"
+                            android:textSize="20dp" />
+
+                        <TextView
+                            android:id="@+id/textView117"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="@string/colon"
+                            android:textColor="@drawable/black"
+                            android:textSize="20dp" />
+                    </LinearLayout>
+
+                    <LinearLayout
+                        android:layout_width="fill_parent"
+                        android:layout_height="fill_parent"
+                        android:layout_weight="1.0"
+                        android:gravity="center|top"
+                        android:orientation="horizontal">
+
+                        <TextView
+                            android:id="@+id/opertator"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="@string/empty"
+                            android:textColor="@drawable/black"
+                            android:textSize="20dp" />
+                    </LinearLayout>
+                </LinearLayout>
+
+                <LinearLayout
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:gravity="center|top"
+                    android:orientation="horizontal">
+
+                    <LinearLayout
+                        android:layout_width="fill_parent"
+                        android:layout_height="fill_parent"
+                        android:layout_weight="1.0"
+                        android:gravity="center|top"
+                        android:orientation="horizontal">
+
+                        <TextView
+                            android:id="@+id/textView8"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="@string/signal"
+                            android:textColor="@drawable/black"
+                            android:textSize="20dp" />
+
+                        <TextView
+                            android:id="@+id/textView7"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="@string/colon"
+                            android:textColor="@drawable/black"
+                            android:textSize="20dp" />
+                    </LinearLayout>
+
+                    <LinearLayout
+                        android:layout_width="fill_parent"
+                        android:layout_height="fill_parent"
+                        android:layout_weight="1.0"
+                        android:gravity="center|top"
+                        android:orientation="horizontal">
+
+                        <TextView
+                            android:id="@+id/signal_strenth"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="@string/empty"
+                            android:textColor="@drawable/black"
+                            android:textSize="20dp" />
+                    </LinearLayout>
+                </LinearLayout>
+
+                <!-- end -->
+
+            </LinearLayout>
+
+            <LinearLayout
+                android:id="@+id/linearLayout2"
+                android:layout_width="fill_parent"
+                android:layout_height="wrap_content"
+                android:gravity="center"
+                android:orientation="horizontal"
+                android:visibility="gone">
+
+                <Button
+                    android:id="@+id/button1"
+                    android:layout_width="fill_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_weight="1.0"
+                    android:onClick="detectSim1"
+                    android:text="@string/detectSim1" />
+
+                <Button
+                    android:id="@+id/button2"
+                    android:layout_width="fill_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_weight="1.0"
+                    android:onClick="detectSim2"
+                    android:text="@string/detectSim2" />
+            </LinearLayout>
+
+            <mobile.miki.mainui.ButtonViewTwo
+                android:id="@+id/btn_set"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"></mobile.miki.mainui.ButtonViewTwo>
+
+        </LinearLayout>
+    </ScrollView>
+
 </RelativeLayout>
\ No newline at end of file
index b95f36a..235ebba 100644 (file)
@@ -1,2 +1,2 @@
-#Thu Dec 31 15:03:35 CST 2020
-VERSION_CODE=62
+#Fri Mar 05 22:29:50 CST 2021
+VERSION_CODE=89