From f6f57d2445efd2609594395ff0af2273cdaeba6c Mon Sep 17 00:00:00 2001 From: BlueMatthew Date: Thu, 22 Feb 2024 13:05:03 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=9A=E8=BF=87=E9=85=8D=E7=BD=AE=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E5=9F=BA=E6=9C=AC=E4=BF=A1=E6=81=AF=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=8A=A5=E7=9A=84=E9=83=A8=E5=88=86=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 基本信息数据报中的版本号则取app的版本信息 --- app/src/main/cpp/MicroPhoto.cpp | 4 ++-- app/src/main/cpp/PhoneDevice.cpp | 16 ++++++++++++---- app/src/main/cpp/PhoneDevice.h | 3 ++- .../com/xypower/mpapp/MicroPhotoService.java | 6 ++++-- .../com/xypower/common/MicroPhotoContext.java | 11 +++++++++++ 5 files changed, 31 insertions(+), 9 deletions(-) diff --git a/app/src/main/cpp/MicroPhoto.cpp b/app/src/main/cpp/MicroPhoto.cpp index 8d1e4b02..ea89174f 100644 --- a/app/src/main/cpp/MicroPhoto.cpp +++ b/app/src/main/cpp/MicroPhoto.cpp @@ -267,7 +267,7 @@ Java_com_xypower_mpapp_MicroPhotoService_init( JNIEnv* env, jobject pThis, jstring appPath, jstring ip, jint port, jstring cmdid, jint protocol, - jint networkProtocol, jlong netHandle, jint signalLevel) { + jint networkProtocol, jlong netHandle, jint signalLevel, jint versionCode) { /* google_breakpad::MinidumpDescriptor descriptor("."); @@ -305,7 +305,7 @@ Java_com_xypower_mpapp_MicroPhotoService_init( CTerminal* pTerminal = NewTerminal(protocol); - CPhoneDevice* device = new CPhoneDevice(vm, pThis, appPathStr, NETID_UNSET); + CPhoneDevice* device = new CPhoneDevice(vm, pThis, appPathStr, NETID_UNSET, versionCode); device->SetListener(pTerminal); device->UpdateSignalLevel(signalLevel); diff --git a/app/src/main/cpp/PhoneDevice.cpp b/app/src/main/cpp/PhoneDevice.cpp index 22895dbd..ad0d9086 100644 --- a/app/src/main/cpp/PhoneDevice.cpp +++ b/app/src/main/cpp/PhoneDevice.cpp @@ -153,7 +153,7 @@ void CPhoneDevice::CPhoneCamera::on_error(const std::string& msg) } } -CPhoneDevice::CPhoneDevice(JavaVM* vm, jobject service, const std::string& appPath, unsigned int netId) : mCameraPowerCount(0), mOtgCount(0) +CPhoneDevice::CPhoneDevice(JavaVM* vm, jobject service, const std::string& appPath, unsigned int netId, unsigned int versionCode) : mCameraPowerCount(0), mOtgCount(0), mVersionCode(versionCode) { mCamera = NULL; m_listener = NULL; @@ -336,6 +336,11 @@ bool CPhoneDevice::QuerySystemProperties(std::map& pro for (std::map::iterator it = properties.begin(); it != properties.end(); ++it) { + if (!(it->second.empty())) + { + continue; + } + if (it->first == PROP_EQUIP_NAME) { __system_property_get("ro.product.name", value); @@ -351,11 +356,14 @@ bool CPhoneDevice::QuerySystemProperties(std::map& pro __system_property_get("ro.product.manufacturer", value); it->second = value; } - else if (it->first == PROP_VERSION) { - __system_property_get("ro.build.version.release", value); + else if (it->first == PROP_VERSION) + { + snprintf(value, sizeof(value), "%u.%03u", (mVersionCode / 1000), (mVersionCode % 1000)); + // __system_property_get("ro.build.version.release", value); it->second = value; } - else if (it->first == PROP_PROD_DATE) { + else if (it->first == PROP_PROD_DATE) + { __system_property_get("ro.build.date.utc", value); it->second = value; } diff --git a/app/src/main/cpp/PhoneDevice.h b/app/src/main/cpp/PhoneDevice.h index 3be7324a..0cb4848c 100644 --- a/app/src/main/cpp/PhoneDevice.h +++ b/app/src/main/cpp/PhoneDevice.h @@ -174,7 +174,7 @@ public: unsigned long uid; }; - CPhoneDevice(JavaVM* vm, jobject service, const std::string& appPath, unsigned int netId); + CPhoneDevice(JavaVM* vm, jobject service, const std::string& appPath, unsigned int netId, unsigned int versionCode); virtual ~CPhoneDevice(); virtual void SetListener(IListener* listener); @@ -281,6 +281,7 @@ protected: IListener* m_listener; const CFG_RECOGNIZATION* m_pRecognizationCfg; unsigned int mNetId; + unsigned int mVersionCode; atomic_ulong m_timerUidFeed; atomic_ulong m_wakelockIdFeed; diff --git a/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java b/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java index 9844e81d..4686d563 100644 --- a/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java +++ b/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java @@ -662,7 +662,9 @@ public class MicroPhotoService extends Service { MicroPhotoService service = MicroPhotoService.this; - service.mNativeHandle = init(appPath, server, port, cmdid, protocol, networkProtocol, 0, service.getSignalLevel()); + int versionCode = MicroPhotoContext.getVersionCode(MicroPhotoService.this.getApplicationContext()); + + service.mNativeHandle = init(appPath, server, port, cmdid, protocol, networkProtocol, 0, service.getSignalLevel(), versionCode); if (service.mNativeHandle !=0) { isRunning = true; @@ -1059,7 +1061,7 @@ CellSignalStrengthGsm cellSignalStrengthGsm = cellInfoGsm.getCellSignalStrength( cellSignalStrengthGsm.getDbm(); */ - protected native long init(String appPath, String ip, int port, String cmdid, int protocol, int networkProtocl, long netHandle, int signalLevel); + protected native long init(String appPath, String ip, int port, String cmdid, int protocol, int networkProtocl, long netHandle, int signalLevel, int versionCode); protected native long getHeartbeatDuration(long handler); protected native long[] getPhotoTimeData(long handler, long startTime); protected native long[] getPhotoTimeData2(long handler); diff --git a/common/src/main/java/com/xypower/common/MicroPhotoContext.java b/common/src/main/java/com/xypower/common/MicroPhotoContext.java index 8e8c9735..305f4e40 100644 --- a/common/src/main/java/com/xypower/common/MicroPhotoContext.java +++ b/common/src/main/java/com/xypower/common/MicroPhotoContext.java @@ -415,5 +415,16 @@ public class MicroPhotoContext { return verName; } + public static int getVersionCode(Context context) { + int versionCode = 0; + try { + versionCode = context.getPackageManager(). + getPackageInfo(context.getPackageName(), 0).versionCode; + } catch (PackageManager.NameNotFoundException e) { + e.printStackTrace(); + } + return versionCode; + } + }