From: snickersun Date: Fri, 5 Mar 2021 14:34:36 +0000 (+0800) Subject: release V89 X-Git-Url: http://git.snicker.com.cn/Users/apple/Desktop/static/gitweb.css?a=commitdiff_plain;h=63b028531355bad2fee13823071ad91c2186c38c;p=factoryMode.git release V89 修复V20上AT指令发送问题。 Gsensor测试兼容 qma7981和sc7a21 SIM卡测试加入滚动条,解决部分信息无法看到问题。 --- diff --git a/app/libs/framework.jar b/app/libs/framework.jar deleted file mode 100644 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 index 0000000..e9ad4ff Binary files /dev/null and b/app/release/FactoryMode_V89_202103052229_release.apk differ diff --git a/app/release/output.json b/app/release/output.json index b1a5f1e..fd9e29d 100644 --- a/app/release/output.json +++ b/app/release/output.json @@ -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 diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 0a1a6ee..f4ccab1 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -2,6 +2,9 @@ + + + @@ -28,6 +31,8 @@ + + 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 index 0000000..3e235a9 --- /dev/null +++ b/app/src/main/java/com/ic/jni/AtCMD.java @@ -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 diff --git a/app/src/main/java/mobile/miki/GravitySensorActivity.java b/app/src/main/java/mobile/miki/GravitySensorActivity.java index bf10744..4f88695 100644 --- a/app/src/main/java/mobile/miki/GravitySensorActivity.java +++ b/app/src/main/java/mobile/miki/GravitySensorActivity.java @@ -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() { diff --git a/app/src/main/java/mobile/miki/MyApplication.java b/app/src/main/java/mobile/miki/MyApplication.java index f132edd..1eeeb99 100644 --- a/app/src/main/java/mobile/miki/MyApplication.java +++ b/app/src/main/java/mobile/miki/MyApplication.java @@ -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(); } - 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实例 diff --git a/app/src/main/java/mobile/miki/flow/DownLoad.java b/app/src/main/java/mobile/miki/flow/DownLoad.java index 03c55ad..616c6e3 100644 --- a/app/src/main/java/mobile/miki/flow/DownLoad.java +++ b/app/src/main/java/mobile/miki/flow/DownLoad.java @@ -1,155 +1,155 @@ -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() { - @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(); - } - -} +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() { + @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(); + } + +} diff --git a/app/src/main/java/mobile/miki/util/IATUtils.java b/app/src/main/java/mobile/miki/util/IATUtils.java index 50659cc..ee6067b 100644 --- a/app/src/main/java/mobile/miki/util/IATUtils.java +++ b/app/src/main/java/mobile/miki/util/IATUtils.java @@ -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 index 0000000..7c7ff3e --- /dev/null +++ b/app/src/main/jni/com_ic_jni_AtCMD.h @@ -0,0 +1,37 @@ +/* DO NOT EDIT THIS FILE - it is machine generated */ +#include +/* 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 index 0000000..4784f0b --- /dev/null +++ b/app/src/main/jni/com_ic_jni_ICJniUtils.h @@ -0,0 +1,253 @@ +/* DO NOT EDIT THIS FILE - it is machine generated */ +#include +/* 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 index 0000000..50a5d3b --- /dev/null +++ b/app/src/main/jni/com_ic_jni_ICJniUtils_GSensorType.h @@ -0,0 +1,13 @@ +/* DO NOT EDIT THIS FILE - it is machine generated */ +#include +/* 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 index 0000000..c749232 --- /dev/null +++ b/app/src/main/jni/com_ic_jni_ICJniUtils_PPG_EGC_SensorType.h @@ -0,0 +1,13 @@ +/* DO NOT EDIT THIS FILE - it is machine generated */ +#include +/* 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 index 0000000..a26e883 --- /dev/null +++ b/app/src/main/jni/com_ic_jni_ICJniUtils_TempSensorType.h @@ -0,0 +1,13 @@ +/* DO NOT EDIT THIS FILE - it is machine generated */ +#include +/* 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 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 index 0000000..fd24c48 Binary files /dev/null and b/app/src/main/libs/armeabi-v7a/libjni_atcmd.so differ diff --git a/app/src/main/res/layout/sim_detect_layout.xml b/app/src/main/res/layout/sim_detect_layout.xml index f17e030..bc27692 100644 --- a/app/src/main/res/layout/sim_detect_layout.xml +++ b/app/src/main/res/layout/sim_detect_layout.xml @@ -1,446 +1,449 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -