From: snickersun Date: Fri, 17 Jan 2020 12:54:53 +0000 (+0800) Subject: 优化socket Receive 函数,解决语音接收crash问题。 X-Git-Url: http://git.snicker.com.cn/sitemap.xml?a=commitdiff_plain;h=b8bf23c17f8b2c9f4223548723a9aaecbe2ecd7b;p=icsupport.git 优化socket Receive 函数,解决语音接收crash问题。 去掉无用类。 增加voicePacket.java,用来接收语音分包数据。 --- diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 69406a15..6a5089d0 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,6 +1,10 @@ diff --git a/app/src/main/java/com/ic/protocol/ICContentProvider.java b/app/src/main/java/com/ic/protocol/ICContentProvider.java index e6265b4d..69ffb4a1 100644 --- a/app/src/main/java/com/ic/protocol/ICContentProvider.java +++ b/app/src/main/java/com/ic/protocol/ICContentProvider.java @@ -10,7 +10,6 @@ import android.net.Uri; import android.support.annotation.NonNull; import android.support.annotation.Nullable; -import java.util.logging.Logger; public class ICContentProvider extends ContentProvider { private static final int ALARM = 5; @@ -22,8 +21,8 @@ public class ICContentProvider extends ContentProvider { private static final String ALARM_MIME = "vnd.android.cursor.dir/vnd.com.enqualcomm.support.alarm"; private static final String ALARM_TABLE_NAME = "ALARM"; - - public static final Uri ALARM_URI; + + public static final Uri ALARM_URI = Uri.parse("content://com.enqualcomm.support/alarm"); private static final int ANTIOFF = 19; @@ -34,8 +33,8 @@ public class ICContentProvider extends ContentProvider { private static final String ANTIOFF_MIME = "vnd.android.cursor.dir/vnd.com.enqualcomm.support.antioff"; private static final String ANTIOFF_TABLE_NAME = "ANTIOFF"; - - public static final Uri ANTIOFF_URI; + + public static final Uri ANTIOFF_URI = Uri.parse("content://com.enqualcomm.support/antioff"); private static final int CONTACT = 1; @@ -46,16 +45,16 @@ public class ICContentProvider extends ContentProvider { private static final String CONTACT_MIME = "vnd.android.cursor.dir/vnd.com.enqualcomm.support.contact"; private static final String CONTACT_TABLE_NAME = "CONTACT"; - - public static final Uri CONTACT_URI; + + public static final Uri CONTACT_URI =Uri.parse("content://com.enqualcomm.support/contact"); private static final int DEVICESTATUS = 15; private static final String DEVICESTATUS_MIME = "vnd.android.cursor.dir/vnd.com.enqualcomm.support.deviceStatus"; private static final String DEVICESTATUS_TABLE_NAME = "DEVICESTATUS"; - - public static final Uri DEVICESTATUS_URL; + + public static final Uri DEVICESTATUS_URL = Uri.parse("content://com.enqualcomm.support/deviceStatus"); private static final int DOWNLOADINFO = 16; @@ -66,16 +65,16 @@ public class ICContentProvider extends ContentProvider { private static final String DOWNLOADINFO_MIME = "vnd.android.cursor.dir/vnd.com.enqualcomm.support.downloadInfo"; private static final String DOWNLOADINFO_TABLE_NAME = "DOWNLOADINFO"; - - public static final Uri DOWNLOADINFO_URL; + + public static final Uri DOWNLOADINFO_URL = Uri .parse("content://com.enqualcomm.support/downloadInfo"); private static final int IKNOWLEDGE = 9; private static final String IKNOWLEDGE_MIME = "vnd.android.cursor.dir/vnd.com.enqualcomm.support.iKnowledge"; private static final String IKNOWLEDGE_TABLE_NAME = "IKNOWLEDGE"; - - public static final Uri IKNOWLEDGE_URL; + + public static final Uri IKNOWLEDGE_URL = Uri.parse("content://com.enqualcomm.support/iKnowledge"); private static final int MESSAGE = 3; @@ -86,8 +85,8 @@ public class ICContentProvider extends ContentProvider { private static final String MESSAGE_MIME = "vnd.android.cursor.dir/vnd.com.enqualcomm.support.message"; private static final String MESSAGE_TABLE_NAME = "MESSAGE"; - - public static final Uri MESSAGE_URI; + + public static final Uri MESSAGE_URI = Uri.parse("content://com.enqualcomm.support/message"); private static final int NOTICE = 12; @@ -98,8 +97,8 @@ public class ICContentProvider extends ContentProvider { private static final String NOTICE_MIME = "vnd.android.cursor.dir/vnd.com.enqualcomm.support.notice"; private static final String NOTICE_TABLE_NAME = "NOTICE"; - - public static final Uri NOTICE_URL; + + public static final Uri NOTICE_URL = Uri.parse("content://com.enqualcomm.support/notice"); private static final int SILENT = 7; @@ -110,16 +109,16 @@ public class ICContentProvider extends ContentProvider { private static final String SILENT_MIME = "vnd.android.cursor.dir/vnd.com.enqualcomm.support.silent"; private static final String SILENT_TABLE_NAME = "SILENT"; - - public static final Uri SILENT_URI; + + public static final Uri SILENT_URI = Uri.parse("content://com.enqualcomm.support/silent"); private static final int STHEART_RATE = 18; private static final String STHEART_RATE_MIME = "vnd.android.cursor.dir/vnd.com.enqualcomm.support.stheartRate"; private static final String STHEART_RATE_TABLE_NAME = "STHEART_RATE"; - - public static final Uri STHEART_RATE_URL; + + public static final Uri STHEART_RATE_URL = Uri.parse("content://com.enqualcomm.support/stheartRate"); private static final int UNREADMSG = 21; @@ -127,7 +126,7 @@ public class ICContentProvider extends ContentProvider { private static final String UNREADMSG_TABLE_NAME = "UNREADMSG"; - public static final Uri UNREAD_MSG_URI = (ANTIOFF_URI = (STHEART_RATE_URL = (DOWNLOADINFO_URL = (DEVICESTATUS_URL = (WEATHER_URL = (NOTICE_URL = (URLDOWNLOADPIC_URL = (IKNOWLEDGE_URL = (SILENT_URI = (ALARM_URI = (MESSAGE_URI = (CONTACT_URI = Uri.parse("content://com.enqualcomm.support/contact")).parse("content://com.enqualcomm.support/message")).parse("content://com.enqualcomm.support/alarm")).parse("content://com.enqualcomm.support/silent")).parse("content://com.enqualcomm.support/iKnowledge")).parse("content://com.enqualcomm.support/urlDownloadPic")).parse("content://com.enqualcomm.support/notice")).parse("content://com.enqualcomm.support/weather")).parse("content://com.enqualcomm.support/deviceStatus")).parse("content://com.enqualcomm.support/downloadInfo")).parse("content://com.enqualcomm.support/stheartRate")).parse("content://com.enqualcomm.support/antioff")).parse("content://com.enqualcomm.support/unreadMsg"); + public static final Uri UNREAD_MSG_URI = Uri.parse("content://com.enqualcomm.support/unreadMsg"); private static final UriMatcher URI_MATCHER = new UriMatcher(-1); @@ -140,41 +139,41 @@ public class ICContentProvider extends ContentProvider { private static final String URLDOWNLOADPIC_MIME = "vnd.android.cursor.dir/vnd.com.enqualcomm.support.urlDownloadPic"; private static final String URLDOWNLOADPIC_TABLE_NAME = "URLDOWNLOADPIC"; - - public static final Uri URLDOWNLOADPIC_URL; + + public static final Uri URLDOWNLOADPIC_URL = Uri .parse("content://com.enqualcomm.support/urlDownloadPic"); private static final int WEATHER = 14; private static final String WEATHER_MIME = "vnd.android.cursor.dir/vnd.com.enqualcomm.support.weather"; private static final String WEATHER_TABLE_NAME = "WEATHER"; - - public static final Uri WEATHER_URL; + + public static final Uri WEATHER_URL = Uri.parse("content://com.enqualcomm.support/weather"); private SQLiteDatabase db; static { - URI_MATCHER.addURI("com.enqualcomm.support", "contact", 1); - URI_MATCHER.addURI("com.enqualcomm.support", "contact/#", 2); - URI_MATCHER.addURI("com.enqualcomm.support", "message", 3); - URI_MATCHER.addURI("com.enqualcomm.support", "message/#", 4); - URI_MATCHER.addURI("com.enqualcomm.support", "alarm", 5); - URI_MATCHER.addURI("com.enqualcomm.support", "alarm/#", 6); - URI_MATCHER.addURI("com.enqualcomm.support", "silent", 7); - URI_MATCHER.addURI("com.enqualcomm.support", "silent/#", 8); - URI_MATCHER.addURI("com.enqualcomm.support", "iKnowledge", 9); - URI_MATCHER.addURI("com.enqualcomm.support", "urlDownloadPic", 10); - URI_MATCHER.addURI("com.enqualcomm.support", "urlDownloadPic/#", 11); - URI_MATCHER.addURI("com.enqualcomm.support", "notice", 12); - URI_MATCHER.addURI("com.enqualcomm.support", "notice/#", 13); - URI_MATCHER.addURI("com.enqualcomm.support", "weather", 14); - URI_MATCHER.addURI("com.enqualcomm.support", "deviceStatus", 15); - URI_MATCHER.addURI("com.enqualcomm.support", "downloadInfo", 16); - URI_MATCHER.addURI("com.enqualcomm.support", "downloadInfo/#", 17); - URI_MATCHER.addURI("com.enqualcomm.support", "stheartRate", 18); - URI_MATCHER.addURI("com.enqualcomm.support", "antioff", 19); - URI_MATCHER.addURI("com.enqualcomm.support", "antioff/#", 20); - URI_MATCHER.addURI("com.enqualcomm.support", "unreadMsg", 21); + URI_MATCHER.addURI("com.enqualcomm.support", "contact", CONTACT); + URI_MATCHER.addURI("com.enqualcomm.support", "contact/#", CONTACT_ITEM); + URI_MATCHER.addURI("com.enqualcomm.support", "message", MESSAGE); + URI_MATCHER.addURI("com.enqualcomm.support", "message/#", MESSAGE_ITEM); + URI_MATCHER.addURI("com.enqualcomm.support", "alarm", ALARM); + URI_MATCHER.addURI("com.enqualcomm.support", "alarm/#", ALARM_ITEM); + URI_MATCHER.addURI("com.enqualcomm.support", "silent", SILENT); + URI_MATCHER.addURI("com.enqualcomm.support", "silent/#", SILENT_ITEM); + URI_MATCHER.addURI("com.enqualcomm.support", "iKnowledge", IKNOWLEDGE); + URI_MATCHER.addURI("com.enqualcomm.support", "urlDownloadPic", URLDOWNLOADPIC); + URI_MATCHER.addURI("com.enqualcomm.support", "urlDownloadPic/#", URLDOWNLOADPIC_ITEM); + URI_MATCHER.addURI("com.enqualcomm.support", "notice", NOTICE); + URI_MATCHER.addURI("com.enqualcomm.support", "notice/#", NOTICE_ITEM); + URI_MATCHER.addURI("com.enqualcomm.support", "weather", WEATHER); + URI_MATCHER.addURI("com.enqualcomm.support", "deviceStatus", DEVICESTATUS); + URI_MATCHER.addURI("com.enqualcomm.support", "downloadInfo", DOWNLOADINFO); + URI_MATCHER.addURI("com.enqualcomm.support", "downloadInfo/#", DOWNLOADINFO_ITEM); + URI_MATCHER.addURI("com.enqualcomm.support", "stheartRate", STHEART_RATE); + URI_MATCHER.addURI("com.enqualcomm.support", "antioff", ANTIOFF); + URI_MATCHER.addURI("com.enqualcomm.support", "antioff/#", ANTIOFF_ITEM); + URI_MATCHER.addURI("com.enqualcomm.support", "unreadMsg", UNREADMSG); } private int bulkInsertLocale(String paramString, ContentValues[] paramArrayOfContentValues) { @@ -194,291 +193,291 @@ public class ICContentProvider extends ContentProvider { } public int bulkInsert(Uri paramUri, ContentValues[] paramArrayOfContentValues) { -// switch (URI_MATCHER.match(paramUri)) { -// default: -// return 0; -// case 21: -// i = bulkInsertLocale("UNREADMSG", paramArrayOfContentValues); -// getContext().getContentResolver().notifyChange(UNREAD_MSG_URI, null); -// return i; -// case 19: -// i = bulkInsertLocale("ANTIOFF", paramArrayOfContentValues); -// getContext().getContentResolver().notifyChange(ANTIOFF_URI, null); -// return i; -// case 18: -// i = bulkInsertLocale("STHEART_RATE", paramArrayOfContentValues); -// getContext().getContentResolver().notifyChange(STHEART_RATE_URL, null); -// return i; -// case 16: -// i = bulkInsertLocale("DOWNLOADINFO", paramArrayOfContentValues); -// getContext().getContentResolver().notifyChange(DOWNLOADINFO_URL, null); -// return i; -// case 15: -// i = bulkInsertLocale("DEVICESTATUS", paramArrayOfContentValues); -// getContext().getContentResolver().notifyChange(DEVICESTATUS_URL, null); -// return i; -// case 14: -// i = bulkInsertLocale("WEATHER", paramArrayOfContentValues); -// getContext().getContentResolver().notifyChange(WEATHER_URL, null); -// return i; -// case 12: -// i = bulkInsertLocale("NOTICE", paramArrayOfContentValues); -// getContext().getContentResolver().notifyChange(NOTICE_URL, null); -// return i; -// case 10: -// i = bulkInsertLocale("URLDOWNLOADPIC", paramArrayOfContentValues); -// getContext().getContentResolver().notifyChange(URLDOWNLOADPIC_URL, null); -// return i; -// case 9: -// i = bulkInsertLocale("IKNOWLEDGE", paramArrayOfContentValues); -// getContext().getContentResolver().notifyChange(IKNOWLEDGE_URL, null); -// return i; -// case 7: -// i = bulkInsertLocale("SILENT", paramArrayOfContentValues); -// getContext().getContentResolver().notifyChange(SILENT_URI, null); -// return i; -// case 5: -// i = bulkInsertLocale("ALARM", paramArrayOfContentValues); -// getContext().getContentResolver().notifyChange(ALARM_URI, null); -// return i; -// case 3: -// i = bulkInsertLocale("MESSAGE", paramArrayOfContentValues); -// getContext().getContentResolver().notifyChange(MESSAGE_URI, null); -// return i; -// case 1: -// break; -// } -// int i = bulkInsertLocale("CONTACT", paramArrayOfContentValues); -// getContext().getContentResolver().notifyChange(CONTACT_URI, null); -// return i; - return 0; + int i; + i=0; + switch (URI_MATCHER.match(paramUri)) { + case UNREADMSG: + i = bulkInsertLocale(UNREADMSG_TABLE_NAME, paramArrayOfContentValues); + getContext().getContentResolver().notifyChange(UNREAD_MSG_URI, null); + break; + case ANTIOFF: + i = bulkInsertLocale(ANTIOFF_TABLE_NAME, paramArrayOfContentValues); + getContext().getContentResolver().notifyChange(ANTIOFF_URI, null); + break; + case STHEART_RATE: + i = bulkInsertLocale(STHEART_RATE_TABLE_NAME, paramArrayOfContentValues); + getContext().getContentResolver().notifyChange(STHEART_RATE_URL, null); + break; + case DOWNLOADINFO: + i = bulkInsertLocale(DOWNLOADINFO_TABLE_NAME, paramArrayOfContentValues); + getContext().getContentResolver().notifyChange(DOWNLOADINFO_URL, null); + break; + case DEVICESTATUS: + i = bulkInsertLocale(DEVICESTATUS_TABLE_NAME, paramArrayOfContentValues); + getContext().getContentResolver().notifyChange(DEVICESTATUS_URL, null); + break; + case WEATHER: + i = bulkInsertLocale(WEATHER_TABLE_NAME, paramArrayOfContentValues); + getContext().getContentResolver().notifyChange(WEATHER_URL, null); + break; + case NOTICE: + i = bulkInsertLocale(NOTICE_TABLE_NAME, paramArrayOfContentValues); + getContext().getContentResolver().notifyChange(NOTICE_URL, null); + break; + case URLDOWNLOADPIC: + i = bulkInsertLocale(URLDOWNLOADPIC_TABLE_NAME, paramArrayOfContentValues); + getContext().getContentResolver().notifyChange(URLDOWNLOADPIC_URL, null); + break; + case IKNOWLEDGE: + i = bulkInsertLocale(IKNOWLEDGE_TABLE_NAME, paramArrayOfContentValues); + getContext().getContentResolver().notifyChange(IKNOWLEDGE_URL, null); + break; + case SILENT: + i = bulkInsertLocale(SILENT_TABLE_NAME, paramArrayOfContentValues); + getContext().getContentResolver().notifyChange(SILENT_URI, null); + break; + case ALARM: + i = bulkInsertLocale(ALARM_TABLE_NAME, paramArrayOfContentValues); + getContext().getContentResolver().notifyChange(ALARM_URI, null); + break; + case MESSAGE: + i = bulkInsertLocale(MESSAGE_TABLE_NAME, paramArrayOfContentValues); + getContext().getContentResolver().notifyChange(MESSAGE_URI, null); + break; + case CONTACT: + i = bulkInsertLocale(CONTACT_TABLE_NAME, paramArrayOfContentValues); + getContext().getContentResolver().notifyChange(CONTACT_URI, null); + break; + default: + break; + } + return i; } public int delete(Uri paramUri, String paramString, String[] paramArrayOfString) { long l; int i=0,j; -// StringBuilder stringBuilder; -// SQLiteDatabase sQLiteDatabase; -// switch (URI_MATCHER.match(paramUri)) { -// default: -// return 0; -// case 21: -// j = this.db.delete("UNREADMSG", paramString, paramArrayOfString); -// i = j; -// if (j != 0) { -// getContext().getContentResolver().notifyChange(UNREAD_MSG_URI, null); -// return j; -// } -// return i; -// case 20: -// l = ContentUris.parseId(paramUri); -// sQLiteDatabase = this.db; -// stringBuilder = new StringBuilder(); -// stringBuilder.append("_id="); -// stringBuilder.append(l); -// j = sQLiteDatabase.delete("ANTIOFF", stringBuilder.toString(), null); -// i = j; -// if (j != 0) { -// getContext().getContentResolver().notifyChange(ANTIOFF_URI, null); -// return j; -// } -// return i; -// case 19: -// j = this.db.delete("ANTIOFF", stringBuilder, paramArrayOfString); -// i = j; -// if (j != 0) { -// getContext().getContentResolver().notifyChange(ANTIOFF_URI, null); -// return j; -// } -// return i; -// case 18: -// j = this.db.delete("STHEART_RATE", stringBuilder, paramArrayOfString); -// i = j; -// if (j != 0) { -// getContext().getContentResolver().notifyChange(STHEART_RATE_URL, null); -// return j; -// } -// return i; -// case 17: -// l = ContentUris.parseId(sQLiteDatabase); -// sQLiteDatabase = this.db; -// stringBuilder = new StringBuilder(); -// stringBuilder.append("_id="); -// stringBuilder.append(l); -// j = sQLiteDatabase.delete("DOWNLOADINFO", stringBuilder.toString(), null); -// i = j; -// if (j != 0) { -// getContext().getContentResolver().notifyChange(DOWNLOADINFO_URL, null); -// return j; -// } -// return i; -// case 16: -// j = this.db.delete("DOWNLOADINFO", stringBuilder, paramArrayOfString); -// i = j; -// if (j != 0) { -// getContext().getContentResolver().notifyChange(DOWNLOADINFO_URL, null); -// return j; -// } -// return i; -// case 15: -// j = this.db.delete("DEVICESTATUS", stringBuilder, paramArrayOfString); -// i = j; -// if (j != 0) { -// getContext().getContentResolver().notifyChange(DEVICESTATUS_URL, null); -// return j; -// } -// return i; -// case 14: -// j = this.db.delete("WEATHER", stringBuilder, paramArrayOfString); -// i = j; -// if (j != 0) { -// getContext().getContentResolver().notifyChange(WEATHER_URL, null); -// return j; -// } -// return i; -// case 13: -// l = ContentUris.parseId(sQLiteDatabase); -// sQLiteDatabase = this.db; -// stringBuilder = new StringBuilder(); -// stringBuilder.append("_id="); -// stringBuilder.append(l); -// j = sQLiteDatabase.delete("NOTICE", stringBuilder.toString(), null); -// i = j; -// if (j != 0) { -// getContext().getContentResolver().notifyChange(NOTICE_URL, null); -// return j; -// } -// return i; -// case 12: -// j = this.db.delete("NOTICE", stringBuilder, paramArrayOfString); -// i = j; -// if (j != 0) { -// getContext().getContentResolver().notifyChange(NOTICE_URL, null); -// return j; -// } -// return i; -// case 11: -// l = ContentUris.parseId(sQLiteDatabase); -// sQLiteDatabase = this.db; -// stringBuilder = new StringBuilder(); -// stringBuilder.append("_id="); -// stringBuilder.append(l); -// j = sQLiteDatabase.delete("URLDOWNLOADPIC", stringBuilder.toString(), null); -// i = j; -// if (j != 0) { -// getContext().getContentResolver().notifyChange(URLDOWNLOADPIC_URL, null); -// return j; -// } -// return i; -// case 10: -// j = this.db.delete("URLDOWNLOADPIC", stringBuilder, paramArrayOfString); -// i = j; -// if (j != 0) { -// getContext().getContentResolver().notifyChange(URLDOWNLOADPIC_URL, null); -// return j; -// } -// return i; -// case 9: -// j = this.db.delete("IKNOWLEDGE", stringBuilder, paramArrayOfString); -// i = j; -// if (j != 0) { -// getContext().getContentResolver().notifyChange(IKNOWLEDGE_URL, null); -// return j; -// } -// return i; -// case 8: -// l = ContentUris.parseId(sQLiteDatabase); -// sQLiteDatabase = this.db; -// stringBuilder = new StringBuilder(); -// stringBuilder.append("_id="); -// stringBuilder.append(l); -// j = sQLiteDatabase.delete("SILENT", stringBuilder.toString(), null); -// i = j; -// if (j != 0) { -// getContext().getContentResolver().notifyChange(SILENT_URI, null); -// return j; -// } -// return i; -// case 7: -// j = this.db.delete("SILENT", stringBuilder, paramArrayOfString); -// i = j; -// if (j != 0) { -// getContext().getContentResolver().notifyChange(SILENT_URI, null); -// return j; -// } -// return i; -// case 6: -// l = ContentUris.parseId(sQLiteDatabase); -// sQLiteDatabase = this.db; -// stringBuilder = new StringBuilder(); -// stringBuilder.append("_id="); -// stringBuilder.append(l); -// j = sQLiteDatabase.delete("ALARM", stringBuilder.toString(), null); -// i = j; -// if (j != 0) { -// getContext().getContentResolver().notifyChange(ALARM_URI, null); -// return j; -// } -// return i; -// case 5: -// j = this.db.delete("ALARM", stringBuilder, paramArrayOfString); -// i = j; -// if (j != 0) { -// getContext().getContentResolver().notifyChange(ALARM_URI, null); -// return j; -// } -// return i; -// case 4: -// l = ContentUris.parseId(sQLiteDatabase); -// sQLiteDatabase = this.db; -// stringBuilder = new StringBuilder(); -// stringBuilder.append("_id="); -// stringBuilder.append(l); -// j = sQLiteDatabase.delete("MESSAGE", stringBuilder.toString(), null); -// i = j; -// if (j != 0) { -// getContext().getContentResolver().notifyChange(MESSAGE_URI, null); -// return j; -// } -// return i; -// case 3: -// j = this.db.delete("MESSAGE", stringBuilder, paramArrayOfString); -// i = j; -// if (j != 0) { -// getContext().getContentResolver().notifyChange(MESSAGE_URI, null); -// return j; -// } -// return i; -// case 2: -// l = ContentUris.parseId(sQLiteDatabase); -// sQLiteDatabase = this.db; -// stringBuilder = new StringBuilder(); -// stringBuilder.append("_id="); -// stringBuilder.append(l); -// j = sQLiteDatabase.delete("CONTACT", stringBuilder.toString(), null); -// i = j; -// if (j != 0) { -// getContext().getContentResolver().notifyChange(CONTACT_URI, null); -// return j; -// } -// return i; -// case 1: -// break; -// } -// int j = this.db.delete("CONTACT", stringBuilder, paramArrayOfString); -// int i = j; -// if (j != 0) { -// getContext().getContentResolver().notifyChange(CONTACT_URI, null); -// i = j; -// } - return i; - } + StringBuilder stringBuilder; + SQLiteDatabase sQLiteDatabase; - @Override - public int update(@NonNull Uri uri, @Nullable ContentValues contentValues, @Nullable String s, @Nullable String[] strings) { - return 0; + switch (URI_MATCHER.match(paramUri)) { + case UNREADMSG: + j = this.db.delete(UNREADMSG_TABLE_NAME, paramString, paramArrayOfString); + + if (j != 0) { + getContext().getContentResolver().notifyChange(UNREAD_MSG_URI, null); + } + i = j; + break; + case ANTIOFF_ITEM: + l = ContentUris.parseId(paramUri); + sQLiteDatabase = this.db; + stringBuilder = new StringBuilder(); + stringBuilder.append("_id="); + stringBuilder.append(l); + j = sQLiteDatabase.delete(ANTIOFF_TABLE_NAME, stringBuilder.toString(), null); + if (j != 0) { + getContext().getContentResolver().notifyChange(ANTIOFF_URI, null); + } + i = j; + break; + case ANTIOFF: + + j = this.db.delete(ANTIOFF_TABLE_NAME, paramString, paramArrayOfString); + i = j; + if (j != 0) { + getContext().getContentResolver().notifyChange(ANTIOFF_URI, null); + + } + break; + case STHEART_RATE: + j = this.db.delete(STHEART_RATE_TABLE_NAME, paramString, paramArrayOfString); + + if (j != 0) { + getContext().getContentResolver().notifyChange(STHEART_RATE_URL, null); + + } + i = j; + break; + case DOWNLOADINFO_ITEM: + l = ContentUris.parseId(paramUri); + sQLiteDatabase = this.db; + stringBuilder = new StringBuilder(); + stringBuilder.append("_id="); + stringBuilder.append(l); + j = sQLiteDatabase.delete(DOWNLOADINFO_TABLE_NAME, stringBuilder.toString(), null); + i = j; + if (j != 0) { + getContext().getContentResolver().notifyChange(DOWNLOADINFO_URL, null); + + } + break; + case DOWNLOADINFO: + j = this.db.delete(DOWNLOADINFO_TABLE_NAME, paramString, paramArrayOfString); + i = j; + if (j != 0) { + getContext().getContentResolver().notifyChange(DOWNLOADINFO_URL, null); + + } + break; + case DEVICESTATUS: + j = this.db.delete(DEVICESTATUS_TABLE_NAME, paramString, paramArrayOfString); + i = j; + if (j != 0) { + getContext().getContentResolver().notifyChange(DEVICESTATUS_URL, null); + + } + break; + case WEATHER: + j = this.db.delete(WEATHER_TABLE_NAME, paramString, paramArrayOfString); + i = j; + if (j != 0) { + getContext().getContentResolver().notifyChange(WEATHER_URL, null); + + } + break; + case NOTICE_ITEM: + l = ContentUris.parseId(paramUri); + sQLiteDatabase = this.db; + stringBuilder = new StringBuilder(); + stringBuilder.append("_id="); + stringBuilder.append(l); + j = sQLiteDatabase.delete(NOTICE_TABLE_NAME, stringBuilder.toString(), null); + i = j; + if (j != 0) { + getContext().getContentResolver().notifyChange(NOTICE_URL, null); + } + break; + case NOTICE: + j = this.db.delete(NOTICE_TABLE_NAME, paramString, paramArrayOfString); + i = j; + if (j != 0) { + getContext().getContentResolver().notifyChange(NOTICE_URL, null); + + } + break; + case URLDOWNLOADPIC_ITEM: + l = ContentUris.parseId(paramUri); + sQLiteDatabase = this.db; + stringBuilder = new StringBuilder(); + stringBuilder.append("_id="); + stringBuilder.append(l); + j = sQLiteDatabase.delete(URLDOWNLOADPIC_TABLE_NAME, stringBuilder.toString(), null); + i = j; + if (j != 0) { + getContext().getContentResolver().notifyChange(URLDOWNLOADPIC_URL, null); + + } + break; + case URLDOWNLOADPIC: + j = this.db.delete(URLDOWNLOADPIC_TABLE_NAME, paramString, paramArrayOfString); + i = j; + if (j != 0) { + getContext().getContentResolver().notifyChange(URLDOWNLOADPIC_URL, null); + + } + break; + case IKNOWLEDGE: + j = this.db.delete(IKNOWLEDGE_TABLE_NAME, paramString, paramArrayOfString); + i = j; + if (j != 0) { + getContext().getContentResolver().notifyChange(IKNOWLEDGE_URL, null); + + } + break; + case SILENT_ITEM: + l = ContentUris.parseId(paramUri); + sQLiteDatabase = this.db; + stringBuilder = new StringBuilder(); + stringBuilder.append("_id="); + stringBuilder.append(l); + j = sQLiteDatabase.delete(SILENT_TABLE_NAME, stringBuilder.toString(), null); + i = j; + if (j != 0) { + getContext().getContentResolver().notifyChange(SILENT_URI, null); + + } + break; + case SILENT: + j = this.db.delete(SILENT_TABLE_NAME, paramString, paramArrayOfString); + i = j; + if (j != 0) { + getContext().getContentResolver().notifyChange(SILENT_URI, null); + + } + break; + case ALARM_ITEM: + l = ContentUris.parseId(paramUri); + sQLiteDatabase = this.db; + stringBuilder = new StringBuilder(); + stringBuilder.append("_id="); + stringBuilder.append(l); + j = sQLiteDatabase.delete(ALARM_TABLE_NAME, stringBuilder.toString(), null); + i = j; + if (j != 0) { + getContext().getContentResolver().notifyChange(ALARM_URI, null); + + } + break; + case ALARM: + j = this.db.delete(ALARM_TABLE_NAME, paramString, paramArrayOfString); + i = j; + if (j != 0) { + getContext().getContentResolver().notifyChange(ALARM_URI, null); + + } + break; + case 4: + l = ContentUris.parseId(paramUri); + sQLiteDatabase = this.db; + stringBuilder = new StringBuilder(); + stringBuilder.append("_id="); + stringBuilder.append(l); + j = sQLiteDatabase.delete(MESSAGE_TABLE_NAME, stringBuilder.toString(), null); + i = j; + if (j != 0) { + getContext().getContentResolver().notifyChange(MESSAGE_URI, null); + + } + break; + case MESSAGE: + j = this.db.delete(MESSAGE_TABLE_NAME, paramString, paramArrayOfString); + i = j; + if (j != 0) { + getContext().getContentResolver().notifyChange(MESSAGE_URI, null); + + } + break; + case CONTACT_ITEM: + l = ContentUris.parseId(paramUri); + sQLiteDatabase = this.db; + stringBuilder = new StringBuilder(); + stringBuilder.append("_id="); + stringBuilder.append(l); + j = sQLiteDatabase.delete(CONTACT_TABLE_NAME, stringBuilder.toString(), null); + i = j; + if (j != 0) { + getContext().getContentResolver().notifyChange(CONTACT_URI, null); + + } + break; + case CONTACT: + + j = this.db.delete(CONTACT_TABLE_NAME, paramString, paramArrayOfString); + if (j != 0) { + getContext().getContentResolver().notifyChange(CONTACT_URI, null); + + } + i = j; + break; + + default: + break; + } + return i; } + public String getType(Uri paramUri) { StringBuilder stringBuilder = new StringBuilder(); stringBuilder.append(paramUri); @@ -486,110 +485,110 @@ public class ICContentProvider extends ContentProvider { stringBuilder.append(URI_MATCHER.match(paramUri)); // Logger.i(stringBuilder.toString()); switch (URI_MATCHER.match(paramUri)) { + case UNREADMSG: + return UNREADMSG_MIME; + case ANTIOFF_ITEM: + return ANTIOFF_ITEM_MIME; + case ANTIOFF: + return ANTIOFF_MIME; + case STHEART_RATE: + return STHEART_RATE_MIME; + case DOWNLOADINFO_ITEM: + return DOWNLOADINFO_ITEM_MIME; + case DOWNLOADINFO: + return DOWNLOADINFO_MIME; + case DEVICESTATUS: + return DEVICESTATUS_MIME; + case WEATHER: + return WEATHER_MIME; + case NOTICE_ITEM: + return NOTICE_ITEM_MIME; + case NOTICE: + return NOTICE_MIME; + case URLDOWNLOADPIC_ITEM: + return URLDOWNLOADPIC_ITEM_MIME; + case URLDOWNLOADPIC: + return URLDOWNLOADPIC_MIME; + case IKNOWLEDGE: + return IKNOWLEDGE_MIME; + case SILENT_ITEM: + return SILENT_ITEM_MIME; + case SILENT: + return SILENT_MIME; + case ALARM_ITEM: + return ALARM_ITEM_MIME; + case ALARM: + return ALARM_MIME; + case MESSAGE_ITEM: + return MESSAGE_ITEM_MIME; + case MESSAGE: + return MESSAGE_MIME; + case CONTACT_ITEM: + return CONTACT_ITEM_MIME; + case CONTACT: + return CONTACT_MIME; default: return null; - case 21: - return "vnd.android.cursor.dir/vnd.com.enqualcomm.support.unreadMsg"; - case 20: - return "vnd.android.cursor.item/vnd.com.enqualcomm.support.antioff"; - case 19: - return "vnd.android.cursor.dir/vnd.com.enqualcomm.support.antioff"; - case 18: - return "vnd.android.cursor.dir/vnd.com.enqualcomm.support.stheartRate"; - case 17: - return "vnd.android.cursor.item/vnd.com.enqualcomm.support.downloadInfo"; - case 16: - return "vnd.android.cursor.dir/vnd.com.enqualcomm.support.downloadInfo"; - case 15: - return "vnd.android.cursor.dir/vnd.com.enqualcomm.support.deviceStatus"; - case 14: - return "vnd.android.cursor.dir/vnd.com.enqualcomm.support.weather"; - case 13: - return "vnd.android.cursor.item/vnd.com.enqualcomm.support.notice"; - case 12: - return "vnd.android.cursor.dir/vnd.com.enqualcomm.support.notice"; - case 11: - return "vnd.android.cursor.item/vnd.com.enqualcomm.support.urlDownloadPic"; - case 10: - return "vnd.android.cursor.dir/vnd.com.enqualcomm.support.urlDownloadPic"; - case 9: - return "vnd.android.cursor.dir/vnd.com.enqualcomm.support.iKnowledge"; - case 8: - return "vnd.android.cursor.item/vnd.com.enqualcomm.support.silent"; - case 7: - return "vnd.android.cursor.dir/vnd.com.enqualcomm.support.silent"; - case 6: - return "vnd.android.cursor.item/vnd.com.enqualcomm.support.alarm"; - case 5: - return "vnd.android.cursor.dir/vnd.com.enqualcomm.support.alarm"; - case 4: - return "vnd.android.cursor.item/vnd.com.enqualcomm.support.message"; - case 3: - return "vnd.android.cursor.dir/vnd.com.enqualcomm.support.message"; - case 2: - return "vnd.android.cursor.item/vnd.com.enqualcomm.support.contact"; - case 1: - break; } - return "vnd.android.cursor.dir/vnd.com.enqualcomm.support.contact"; + } public Uri insert(Uri paramUri, ContentValues paramContentValues) { switch (URI_MATCHER.match(paramUri)) { default: return null; - case 21: - paramUri = ContentUris.withAppendedId(paramUri, this.db.insert("UNREADMSG", null, paramContentValues)); + case UNREADMSG: + paramUri = ContentUris.withAppendedId(paramUri, this.db.insert(UNREADMSG_TABLE_NAME, null, paramContentValues)); getContext().getContentResolver().notifyChange(UNREAD_MSG_URI, null); return paramUri; - case 19: - paramUri = ContentUris.withAppendedId(paramUri, this.db.insert("ANTIOFF", null, paramContentValues)); + case ANTIOFF: + paramUri = ContentUris.withAppendedId(paramUri, this.db.insert(ANTIOFF_TABLE_NAME, null, paramContentValues)); getContext().getContentResolver().notifyChange(ANTIOFF_URI, null); return paramUri; - case 18: - paramUri = ContentUris.withAppendedId(paramUri, this.db.insert("STHEART_RATE", null, paramContentValues)); + case STHEART_RATE: + paramUri = ContentUris.withAppendedId(paramUri, this.db.insert(STHEART_RATE_TABLE_NAME, null, paramContentValues)); getContext().getContentResolver().notifyChange(STHEART_RATE_URL, null); return paramUri; - case 16: - paramUri = ContentUris.withAppendedId(paramUri, this.db.insert("DOWNLOADINFO", null, paramContentValues)); + case DOWNLOADINFO: + paramUri = ContentUris.withAppendedId(paramUri, this.db.insert(DOWNLOADINFO_TABLE_NAME, null, paramContentValues)); getContext().getContentResolver().notifyChange(DOWNLOADINFO_URL, null); return paramUri; - case 15: - paramUri = ContentUris.withAppendedId(paramUri, this.db.insert("DEVICESTATUS", null, paramContentValues)); + case DEVICESTATUS: + paramUri = ContentUris.withAppendedId(paramUri, this.db.insert(DEVICESTATUS_TABLE_NAME, null, paramContentValues)); getContext().getContentResolver().notifyChange(DEVICESTATUS_URL, null); return paramUri; - case 14: - paramUri = ContentUris.withAppendedId(paramUri, this.db.insert("WEATHER", null, paramContentValues)); + case WEATHER: + paramUri = ContentUris.withAppendedId(paramUri, this.db.insert(WEATHER_TABLE_NAME, null, paramContentValues)); getContext().getContentResolver().notifyChange(WEATHER_URL, null); return paramUri; - case 12: - paramUri = ContentUris.withAppendedId(paramUri, this.db.insert("NOTICE", null, paramContentValues)); + case NOTICE: + paramUri = ContentUris.withAppendedId(paramUri, this.db.insert(NOTICE_TABLE_NAME, null, paramContentValues)); getContext().getContentResolver().notifyChange(NOTICE_URL, null); return paramUri; - case 10: - paramUri = ContentUris.withAppendedId(paramUri, this.db.insert("URLDOWNLOADPIC", null, paramContentValues)); + case URLDOWNLOADPIC: + paramUri = ContentUris.withAppendedId(paramUri, this.db.insert(URLDOWNLOADPIC_TABLE_NAME, null, paramContentValues)); getContext().getContentResolver().notifyChange(URLDOWNLOADPIC_URL, null); return paramUri; - case 9: - paramUri = ContentUris.withAppendedId(paramUri, this.db.insert("IKNOWLEDGE", null, paramContentValues)); + case IKNOWLEDGE: + paramUri = ContentUris.withAppendedId(paramUri, this.db.insert(IKNOWLEDGE_TABLE_NAME, null, paramContentValues)); getContext().getContentResolver().notifyChange(IKNOWLEDGE_URL, null); return paramUri; - case 7: - paramUri = ContentUris.withAppendedId(paramUri, this.db.insert("SILENT", null, paramContentValues)); + case SILENT: + paramUri = ContentUris.withAppendedId(paramUri, this.db.insert(SILENT_TABLE_NAME, null, paramContentValues)); getContext().getContentResolver().notifyChange(SILENT_URI, null); return paramUri; - case 5: - paramUri = ContentUris.withAppendedId(paramUri, this.db.insert("ALARM", null, paramContentValues)); + case ALARM: + paramUri = ContentUris.withAppendedId(paramUri, this.db.insert(ALARM_TABLE_NAME, null, paramContentValues)); getContext().getContentResolver().notifyChange(ALARM_URI, null); return paramUri; - case 3: - paramUri = ContentUris.withAppendedId(paramUri, this.db.insert("MESSAGE", null, paramContentValues)); + case MESSAGE: + paramUri = ContentUris.withAppendedId(paramUri, this.db.insert(MESSAGE_TABLE_NAME, null, paramContentValues)); getContext().getContentResolver().notifyChange(MESSAGE_URI, null); return paramUri; - case 1: + case CONTACT: break; } - paramUri = ContentUris.withAppendedId(paramUri, this.db.insert("CONTACT", null, paramContentValues)); + paramUri = ContentUris.withAppendedId(paramUri, this.db.insert(CONTACT_TABLE_NAME, null, paramContentValues)); getContext().getContentResolver().notifyChange(CONTACT_URI, null); return paramUri; } @@ -601,321 +600,322 @@ public class ICContentProvider extends ContentProvider { @Nullable @Override - public Cursor query(@NonNull Uri uri, @Nullable String[] strings, @Nullable String s, @Nullable String[] strings1, @Nullable String s1) { - return null; + public Cursor query(Uri paramUri, String[] paramArrayOfString1, String paramString1, String[] paramArrayOfString2, String paramString2) { + long l; + StringBuilder stringBuilder; + + SQLiteDatabase sQLiteDatabase; + sQLiteDatabase = this.db; + switch (URI_MATCHER.match(paramUri)) { + default: + return null; + case UNREADMSG: + return this.db.query(UNREADMSG_TABLE_NAME, paramArrayOfString1, paramString1, paramArrayOfString2, null, null, paramString2); + case ANTIOFF_ITEM: + l = ContentUris.parseId(paramUri); + stringBuilder = new StringBuilder(); + stringBuilder.append("_id="); + stringBuilder.append(l); + return sQLiteDatabase.query(ANTIOFF_TABLE_NAME, paramArrayOfString1, paramString1.toString(), null, null, null, null); + case ANTIOFF: + return this.db.query(ANTIOFF_TABLE_NAME, paramArrayOfString1, paramString1, paramArrayOfString2, null, null, paramString2); + case STHEART_RATE: + return this.db.query(STHEART_RATE_TABLE_NAME, paramArrayOfString1, paramString1, paramArrayOfString2, null, null, paramString2); + case DOWNLOADINFO_ITEM: + l = ContentUris.parseId(paramUri); + sQLiteDatabase = this.db; + stringBuilder = new StringBuilder(); + stringBuilder.append("_id="); + stringBuilder.append(l); + return sQLiteDatabase.query(DOWNLOADINFO_TABLE_NAME, paramArrayOfString1, stringBuilder.toString(), null, null, null, null); + case DOWNLOADINFO: + return this.db.query(DOWNLOADINFO_TABLE_NAME, paramArrayOfString1, paramString1, paramArrayOfString2, null, null, paramString2); + case DEVICESTATUS: + return this.db.query(DEVICESTATUS_TABLE_NAME, paramArrayOfString1, paramString1, paramArrayOfString2, null, null, paramString2); + case WEATHER: + return this.db.query(WEATHER_TABLE_NAME, paramArrayOfString1, paramString1, paramArrayOfString2, null, null, paramString2); + case NOTICE_ITEM: + l = ContentUris.parseId(paramUri); + sQLiteDatabase = this.db; + stringBuilder = new StringBuilder(); + stringBuilder.append("_id="); + stringBuilder.append(l); + return sQLiteDatabase.query(NOTICE_TABLE_NAME, paramArrayOfString1, stringBuilder.toString(), null, null, null, null); + case NOTICE: + return this.db.query(NOTICE_TABLE_NAME, paramArrayOfString1, paramString1, paramArrayOfString2, null, null, paramString2); + case URLDOWNLOADPIC_ITEM: + l = ContentUris.parseId(paramUri); + sQLiteDatabase = this.db; + stringBuilder = new StringBuilder(); + stringBuilder.append("_id="); + stringBuilder.append(l); + return sQLiteDatabase.query(URLDOWNLOADPIC_TABLE_NAME, paramArrayOfString1, stringBuilder.toString(), null, null, null, null); + case URLDOWNLOADPIC: + return this.db.query(URLDOWNLOADPIC_TABLE_NAME, paramArrayOfString1, paramString1, paramArrayOfString2, null, null, paramString2); + case IKNOWLEDGE: + return this.db.query(IKNOWLEDGE_TABLE_NAME, paramArrayOfString1, paramString1, paramArrayOfString2, null, null, paramString2); + case SILENT_ITEM: + l = ContentUris.parseId(paramUri); + sQLiteDatabase = this.db; + stringBuilder = new StringBuilder(); + stringBuilder.append("_id="); + stringBuilder.append(l); + return sQLiteDatabase.query(SILENT_TABLE_NAME, paramArrayOfString1, stringBuilder.toString(), null, null, null, null); + case SILENT: + return this.db.query(SILENT_TABLE_NAME, paramArrayOfString1, paramString1, paramArrayOfString2, null, null, paramString2); + case ALARM_ITEM: + l = ContentUris.parseId(paramUri); + sQLiteDatabase = this.db; + stringBuilder = new StringBuilder(); + stringBuilder.append("_id="); + stringBuilder.append(l); + return sQLiteDatabase.query(ALARM_TABLE_NAME, paramArrayOfString1, stringBuilder.toString(), null, null, null, null); + case ALARM: + return this.db.query(ALARM_TABLE_NAME, paramArrayOfString1, paramString1, paramArrayOfString2, null, null, paramString2); + case 4: + l = ContentUris.parseId(paramUri); + sQLiteDatabase = this.db; + stringBuilder = new StringBuilder(); + stringBuilder.append("_id="); + stringBuilder.append(l); + return sQLiteDatabase.query(MESSAGE_TABLE_NAME, paramArrayOfString1, stringBuilder.toString(), null, null, null, null); + case MESSAGE: + return this.db.query(MESSAGE_TABLE_NAME, paramArrayOfString1, paramString1, paramArrayOfString2, null, null, paramString2); + case 2: + l = ContentUris.parseId(paramUri); + sQLiteDatabase = this.db; + stringBuilder = new StringBuilder(); + stringBuilder.append("_id="); + stringBuilder.append(l); + return sQLiteDatabase.query(CONTACT_TABLE_NAME, paramArrayOfString1, stringBuilder.toString(), null, null, null, null); + case 1: + break; + } + return this.db.query(CONTACT_TABLE_NAME, paramArrayOfString1, paramString1, paramArrayOfString2, null, null, paramString2); } + @Override + public int update(Uri paramUri, ContentValues paramContentValues, String paramString, String[] paramArrayOfString) { + long l; + int i=0,j; + StringBuilder stringBuilder; + SQLiteDatabase sQLiteDatabase; + switch (URI_MATCHER.match(paramUri)) { + + case UNREADMSG: + j = this.db.update(UNREADMSG_TABLE_NAME, paramContentValues, paramString, paramArrayOfString); + i = j; + if (j != 0) { + getContext().getContentResolver().notifyChange(UNREAD_MSG_URI, null); + return j; + } + return i; + case ANTIOFF_ITEM: + l = ContentUris.parseId(paramUri); + sQLiteDatabase = this.db; + stringBuilder = new StringBuilder(); + stringBuilder.append("_id="); + stringBuilder.append(l); + j = sQLiteDatabase.update(ANTIOFF_TABLE_NAME, paramContentValues, stringBuilder.toString(), null); + i = j; + if (j != 0) { + getContext().getContentResolver().notifyChange(ANTIOFF_URI, null); + return j; + } + return i; + case ANTIOFF: + j = this.db.update(ANTIOFF_TABLE_NAME, paramContentValues, paramString, paramArrayOfString); + i = j; + if (j != 0) { + getContext().getContentResolver().notifyChange(ANTIOFF_URI, null); + return j; + } + return i; + case STHEART_RATE: + j = this.db.update(STHEART_RATE_TABLE_NAME, paramContentValues, paramString, paramArrayOfString); + i = j; + if (j != 0) { + getContext().getContentResolver().notifyChange(STHEART_RATE_URL, null); + return j; + } + return i; + case DOWNLOADINFO_ITEM: + l = ContentUris.parseId(paramUri); + sQLiteDatabase = this.db; + stringBuilder = new StringBuilder(); + stringBuilder.append("_id="); + stringBuilder.append(l); + j = sQLiteDatabase.update(DOWNLOADINFO_TABLE_NAME, paramContentValues, stringBuilder.toString(), null); + i = j; + if (j != 0) { + getContext().getContentResolver().notifyChange(DOWNLOADINFO_URL, null); + return j; + } + return i; + case DOWNLOADINFO: + j = this.db.update(DOWNLOADINFO_TABLE_NAME, paramContentValues, paramString, paramArrayOfString); + i = j; + if (j != 0) { + getContext().getContentResolver().notifyChange(DOWNLOADINFO_URL, null); + return j; + } + return i; + case DEVICESTATUS: + j = this.db.update(DEVICESTATUS_TABLE_NAME, paramContentValues, paramString, paramArrayOfString); + i = j; + if (j != 0) { + getContext().getContentResolver().notifyChange(DEVICESTATUS_URL, null); + return j; + } + return i; + case WEATHER: + j = this.db.update(WEATHER_TABLE_NAME, paramContentValues, paramString, paramArrayOfString); + i = j; + if (j != 0) { + getContext().getContentResolver().notifyChange(WEATHER_URL, null); + return j; + } + return i; + case NOTICE_ITEM: + l = ContentUris.parseId(paramUri); + sQLiteDatabase = this.db; + stringBuilder = new StringBuilder(); + stringBuilder.append("_id="); + stringBuilder.append(l); + j = sQLiteDatabase.update(NOTICE_TABLE_NAME, paramContentValues, stringBuilder.toString(), null); + i = j; + if (j != 0) { + getContext().getContentResolver().notifyChange(NOTICE_URL, null); + return j; + } + return i; + case NOTICE: + j = this.db.update(NOTICE_TABLE_NAME, paramContentValues, paramString, paramArrayOfString); + i = j; + if (j != 0) { + getContext().getContentResolver().notifyChange(NOTICE_URL, null); + return j; + } + return i; + case URLDOWNLOADPIC_ITEM: + l = ContentUris.parseId(paramUri); + sQLiteDatabase = this.db; + stringBuilder = new StringBuilder(); + stringBuilder.append("_id="); + stringBuilder.append(l); + j = sQLiteDatabase.update(URLDOWNLOADPIC_TABLE_NAME, paramContentValues, stringBuilder.toString(), null); + i = j; + if (j != 0) { + getContext().getContentResolver().notifyChange(URLDOWNLOADPIC_URL, null); + return j; + } + return i; + case URLDOWNLOADPIC: + j = this.db.update(URLDOWNLOADPIC_TABLE_NAME, paramContentValues, paramString, paramArrayOfString); + i = j; + if (j != 0) { + getContext().getContentResolver().notifyChange(URLDOWNLOADPIC_URL, null); + return j; + } + return i; + case IKNOWLEDGE: + j = this.db.update(IKNOWLEDGE_TABLE_NAME, paramContentValues, paramString, paramArrayOfString); + i = j; + if (j != 0) { + getContext().getContentResolver().notifyChange(IKNOWLEDGE_URL, null); + return j; + } + return i; + case SILENT_ITEM: + l = ContentUris.parseId(paramUri); + sQLiteDatabase = this.db; + stringBuilder = new StringBuilder(); + stringBuilder.append("_id="); + stringBuilder.append(l); + j = sQLiteDatabase.update(SILENT_TABLE_NAME, paramContentValues, stringBuilder.toString(), null); + i = j; + if (j != 0) { + getContext().getContentResolver().notifyChange(SILENT_URI, null); + return j; + } + return i; + case SILENT: + j = this.db.update(SILENT_TABLE_NAME, paramContentValues, paramString, paramArrayOfString); + i = j; + if (j != 0) { + getContext().getContentResolver().notifyChange(SILENT_URI, null); + return j; + } + return i; + case ALARM_ITEM: + l = ContentUris.parseId(paramUri); + sQLiteDatabase = this.db; + stringBuilder = new StringBuilder(); + stringBuilder.append("_id="); + stringBuilder.append(l); + j = sQLiteDatabase.update(ALARM_TABLE_NAME, paramContentValues, stringBuilder.toString(), null); + i = j; + if (j != 0) { + getContext().getContentResolver().notifyChange(ALARM_URI, null); + return j; + } + return i; + case ALARM: + j = this.db.update(ALARM_TABLE_NAME, paramContentValues, paramString, paramArrayOfString); + i = j; + if (j != 0) { + getContext().getContentResolver().notifyChange(ALARM_URI, null); + return j; + } + return i; + case MESSAGE_ITEM: + l = ContentUris.parseId(paramUri); + sQLiteDatabase = this.db; + stringBuilder = new StringBuilder(); + stringBuilder.append("_id="); + stringBuilder.append(l); + j = sQLiteDatabase.update(MESSAGE_TABLE_NAME, paramContentValues, stringBuilder.toString(), null); + i = j; + if (j != 0) { + getContext().getContentResolver().notifyChange(MESSAGE_URI, null); + return j; + } + return i; + case MESSAGE: + j = this.db.update(MESSAGE_TABLE_NAME, paramContentValues, paramString, paramArrayOfString); + i = j; + if (j != 0) { + getContext().getContentResolver().notifyChange(MESSAGE_URI, null); + return j; + } + return i; + case CONTACT_ITEM: + l = ContentUris.parseId(paramUri); + sQLiteDatabase = this.db; + stringBuilder = new StringBuilder(); + stringBuilder.append("_id="); + stringBuilder.append(l); + j = sQLiteDatabase.update(CONTACT_TABLE_NAME, paramContentValues, stringBuilder.toString(), null); + i = j; + if (j != 0) { + getContext().getContentResolver().notifyChange(CONTACT_URI, null); + return j; + } + return i; + case CONTACT: -// public Cursor query(Uri paramUri, String[] paramArrayOfString1, String paramString1, String[] paramArrayOfString2, String paramString2) { -// long l; -// StringBuilder stringBuilder; -// SQLiteDatabase sQLiteDatabase; -// switch (URI_MATCHER.match(paramUri)) { -// default: -// return null; -// case 21: -// return this.db.query("UNREADMSG", paramArrayOfString1, paramString1, paramArrayOfString2, null, null, paramString2); -// case 20: -// l = ContentUris.parseId(paramUri); -// sQLiteDatabase = this.db; -// stringBuilder = new StringBuilder(); -// stringBuilder.append("_id="); -// stringBuilder.append(l); -// return sQLiteDatabase.query("ANTIOFF", paramArrayOfString1, stringBuilder.toString(), null, null, null, null); -// case 19: -// return this.db.query("ANTIOFF", paramArrayOfString1, stringBuilder, paramArrayOfString2, null, null, paramString2); -// case 18: -// return this.db.query("STHEART_RATE", paramArrayOfString1, stringBuilder, paramArrayOfString2, null, null, paramString2); -// case 17: -// l = ContentUris.parseId(sQLiteDatabase); -// sQLiteDatabase = this.db; -// stringBuilder = new StringBuilder(); -// stringBuilder.append("_id="); -// stringBuilder.append(l); -// return sQLiteDatabase.query("DOWNLOADINFO", paramArrayOfString1, stringBuilder.toString(), null, null, null, null); -// case 16: -// return this.db.query("DOWNLOADINFO", paramArrayOfString1, stringBuilder, paramArrayOfString2, null, null, paramString2); -// case 15: -// return this.db.query("DEVICESTATUS", paramArrayOfString1, stringBuilder, paramArrayOfString2, null, null, paramString2); -// case 14: -// return this.db.query("WEATHER", paramArrayOfString1, stringBuilder, paramArrayOfString2, null, null, paramString2); -// case 13: -// l = ContentUris.parseId(sQLiteDatabase); -// sQLiteDatabase = this.db; -// stringBuilder = new StringBuilder(); -// stringBuilder.append("_id="); -// stringBuilder.append(l); -// return sQLiteDatabase.query("NOTICE", paramArrayOfString1, stringBuilder.toString(), null, null, null, null); -// case 12: -// return this.db.query("NOTICE", paramArrayOfString1, stringBuilder, paramArrayOfString2, null, null, paramString2); -// case 11: -// l = ContentUris.parseId(sQLiteDatabase); -// sQLiteDatabase = this.db; -// stringBuilder = new StringBuilder(); -// stringBuilder.append("_id="); -// stringBuilder.append(l); -// return sQLiteDatabase.query("URLDOWNLOADPIC", paramArrayOfString1, stringBuilder.toString(), null, null, null, null); -// case 10: -// return this.db.query("URLDOWNLOADPIC", paramArrayOfString1, stringBuilder, paramArrayOfString2, null, null, paramString2); -// case 9: -// return this.db.query("IKNOWLEDGE", paramArrayOfString1, stringBuilder, paramArrayOfString2, null, null, paramString2); -// case 8: -// l = ContentUris.parseId(sQLiteDatabase); -// sQLiteDatabase = this.db; -// stringBuilder = new StringBuilder(); -// stringBuilder.append("_id="); -// stringBuilder.append(l); -// return sQLiteDatabase.query("SILENT", paramArrayOfString1, stringBuilder.toString(), null, null, null, null); -// case 7: -// return this.db.query("SILENT", paramArrayOfString1, stringBuilder, paramArrayOfString2, null, null, paramString2); -// case 6: -// l = ContentUris.parseId(sQLiteDatabase); -// sQLiteDatabase = this.db; -// stringBuilder = new StringBuilder(); -// stringBuilder.append("_id="); -// stringBuilder.append(l); -// return sQLiteDatabase.query("ALARM", paramArrayOfString1, stringBuilder.toString(), null, null, null, null); -// case 5: -// return this.db.query("ALARM", paramArrayOfString1, stringBuilder, paramArrayOfString2, null, null, paramString2); -// case 4: -// l = ContentUris.parseId(sQLiteDatabase); -// sQLiteDatabase = this.db; -// stringBuilder = new StringBuilder(); -// stringBuilder.append("_id="); -// stringBuilder.append(l); -// return sQLiteDatabase.query("MESSAGE", paramArrayOfString1, stringBuilder.toString(), null, null, null, null); -// case 3: -// return this.db.query("MESSAGE", paramArrayOfString1, stringBuilder, paramArrayOfString2, null, null, paramString2); -// case 2: -// l = ContentUris.parseId(sQLiteDatabase); -// sQLiteDatabase = this.db; -// stringBuilder = new StringBuilder(); -// stringBuilder.append("_id="); -// stringBuilder.append(l); -// return sQLiteDatabase.query("CONTACT", paramArrayOfString1, stringBuilder.toString(), null, null, null, null); -// case 1: -// break; -// } -// return this.db.query("CONTACT", paramArrayOfString1, stringBuilder, paramArrayOfString2, null, null, paramString2); -// } - -// public int update(Uri paramUri, ContentValues paramContentValues, String paramString, String[] paramArrayOfString) { -// long l; -// StringBuilder stringBuilder; -// SQLiteDatabase sQLiteDatabase; -// switch (URI_MATCHER.match(paramUri)) { -// default: -// return 0; -// case 21: -// j = this.db.update("UNREADMSG", paramContentValues, paramString, paramArrayOfString); -// i = j; -// if (j != 0) { -// getContext().getContentResolver().notifyChange(UNREAD_MSG_URI, null); -// return j; -// } -// return i; -// case 20: -// l = ContentUris.parseId(paramUri); -// sQLiteDatabase = this.db; -// stringBuilder = new StringBuilder(); -// stringBuilder.append("_id="); -// stringBuilder.append(l); -// j = sQLiteDatabase.update("ANTIOFF", paramContentValues, stringBuilder.toString(), null); -// i = j; -// if (j != 0) { -// getContext().getContentResolver().notifyChange(ANTIOFF_URI, null); -// return j; -// } -// return i; -// case 19: -// j = this.db.update("ANTIOFF", paramContentValues, stringBuilder, paramArrayOfString); -// i = j; -// if (j != 0) { -// getContext().getContentResolver().notifyChange(ANTIOFF_URI, null); -// return j; -// } -// return i; -// case 18: -// j = this.db.update("STHEART_RATE", paramContentValues, stringBuilder, paramArrayOfString); -// i = j; -// if (j != 0) { -// getContext().getContentResolver().notifyChange(STHEART_RATE_URL, null); -// return j; -// } -// return i; -// case 17: -// l = ContentUris.parseId(sQLiteDatabase); -// sQLiteDatabase = this.db; -// stringBuilder = new StringBuilder(); -// stringBuilder.append("_id="); -// stringBuilder.append(l); -// j = sQLiteDatabase.update("DOWNLOADINFO", paramContentValues, stringBuilder.toString(), null); -// i = j; -// if (j != 0) { -// getContext().getContentResolver().notifyChange(DOWNLOADINFO_URL, null); -// return j; -// } -// return i; -// case 16: -// j = this.db.update("DOWNLOADINFO", paramContentValues, stringBuilder, paramArrayOfString); -// i = j; -// if (j != 0) { -// getContext().getContentResolver().notifyChange(DOWNLOADINFO_URL, null); -// return j; -// } -// return i; -// case 15: -// j = this.db.update("DEVICESTATUS", paramContentValues, stringBuilder, paramArrayOfString); -// i = j; -// if (j != 0) { -// getContext().getContentResolver().notifyChange(DEVICESTATUS_URL, null); -// return j; -// } -// return i; -// case 14: -// j = this.db.update("WEATHER", paramContentValues, stringBuilder, paramArrayOfString); -// i = j; -// if (j != 0) { -// getContext().getContentResolver().notifyChange(WEATHER_URL, null); -// return j; -// } -// return i; -// case 13: -// l = ContentUris.parseId(sQLiteDatabase); -// sQLiteDatabase = this.db; -// stringBuilder = new StringBuilder(); -// stringBuilder.append("_id="); -// stringBuilder.append(l); -// j = sQLiteDatabase.update("NOTICE", paramContentValues, stringBuilder.toString(), null); -// i = j; -// if (j != 0) { -// getContext().getContentResolver().notifyChange(NOTICE_URL, null); -// return j; -// } -// return i; -// case 12: -// j = this.db.update("NOTICE", paramContentValues, stringBuilder, paramArrayOfString); -// i = j; -// if (j != 0) { -// getContext().getContentResolver().notifyChange(NOTICE_URL, null); -// return j; -// } -// return i; -// case 11: -// l = ContentUris.parseId(sQLiteDatabase); -// sQLiteDatabase = this.db; -// stringBuilder = new StringBuilder(); -// stringBuilder.append("_id="); -// stringBuilder.append(l); -// j = sQLiteDatabase.update("URLDOWNLOADPIC", paramContentValues, stringBuilder.toString(), null); -// i = j; -// if (j != 0) { -// getContext().getContentResolver().notifyChange(URLDOWNLOADPIC_URL, null); -// return j; -// } -// return i; -// case 10: -// j = this.db.update("URLDOWNLOADPIC", paramContentValues, stringBuilder, paramArrayOfString); -// i = j; -// if (j != 0) { -// getContext().getContentResolver().notifyChange(URLDOWNLOADPIC_URL, null); -// return j; -// } -// return i; -// case 9: -// j = this.db.update("IKNOWLEDGE", paramContentValues, stringBuilder, paramArrayOfString); -// i = j; -// if (j != 0) { -// getContext().getContentResolver().notifyChange(IKNOWLEDGE_URL, null); -// return j; -// } -// return i; -// case 8: -// l = ContentUris.parseId(sQLiteDatabase); -// sQLiteDatabase = this.db; -// stringBuilder = new StringBuilder(); -// stringBuilder.append("_id="); -// stringBuilder.append(l); -// j = sQLiteDatabase.update("SILENT", paramContentValues, stringBuilder.toString(), null); -// i = j; -// if (j != 0) { -// getContext().getContentResolver().notifyChange(SILENT_URI, null); -// return j; -// } -// return i; -// case 7: -// j = this.db.update("SILENT", paramContentValues, stringBuilder, paramArrayOfString); -// i = j; -// if (j != 0) { -// getContext().getContentResolver().notifyChange(SILENT_URI, null); -// return j; -// } -// return i; -// case 6: -// l = ContentUris.parseId(sQLiteDatabase); -// sQLiteDatabase = this.db; -// stringBuilder = new StringBuilder(); -// stringBuilder.append("_id="); -// stringBuilder.append(l); -// j = sQLiteDatabase.update("ALARM", paramContentValues, stringBuilder.toString(), null); -// i = j; -// if (j != 0) { -// getContext().getContentResolver().notifyChange(ALARM_URI, null); -// return j; -// } -// return i; -// case 5: -// j = this.db.update("ALARM", paramContentValues, stringBuilder, paramArrayOfString); -// i = j; -// if (j != 0) { -// getContext().getContentResolver().notifyChange(ALARM_URI, null); -// return j; -// } -// return i; -// case 4: -// l = ContentUris.parseId(sQLiteDatabase); -// sQLiteDatabase = this.db; -// stringBuilder = new StringBuilder(); -// stringBuilder.append("_id="); -// stringBuilder.append(l); -// j = sQLiteDatabase.update("MESSAGE", paramContentValues, stringBuilder.toString(), null); -// i = j; -// if (j != 0) { -// getContext().getContentResolver().notifyChange(MESSAGE_URI, null); -// return j; -// } -// return i; -// case 3: -// j = this.db.update("MESSAGE", paramContentValues, stringBuilder, paramArrayOfString); -// i = j; -// if (j != 0) { -// getContext().getContentResolver().notifyChange(MESSAGE_URI, null); -// return j; -// } -// return i; -// case 2: -// l = ContentUris.parseId(sQLiteDatabase); -// sQLiteDatabase = this.db; -// stringBuilder = new StringBuilder(); -// stringBuilder.append("_id="); -// stringBuilder.append(l); -// j = sQLiteDatabase.update("CONTACT", paramContentValues, stringBuilder.toString(), null); -// i = j; -// if (j != 0) { -// getContext().getContentResolver().notifyChange(CONTACT_URI, null); -// return j; -// } -// return i; -// case 1: -// break; -// } -// int j = this.db.update("CONTACT", paramContentValues, stringBuilder, paramArrayOfString); -// int i = j; -// if (j != 0) { -// getContext().getContentResolver().notifyChange(CONTACT_URI, null); -// i = j; -// } -// return i; -// } + j = this.db.update(CONTACT_TABLE_NAME, paramContentValues, paramString, paramArrayOfString); + i = j; + if (j != 0) { + getContext().getContentResolver().notifyChange(CONTACT_URI, null); + i = j; + } + + break; + default: + break; + } + return i; + } } diff --git a/app/src/main/java/com/ic/protocol/adapter/protocolAPIHelper.java b/app/src/main/java/com/ic/protocol/adapter/protocolAPIHelper.java index 9076835d..3f9f04d5 100644 --- a/app/src/main/java/com/ic/protocol/adapter/protocolAPIHelper.java +++ b/app/src/main/java/com/ic/protocol/adapter/protocolAPIHelper.java @@ -1,15 +1,20 @@ package com.ic.protocol.adapter; +import android.content.Intent; import android.util.Log; import com.ic.protocol.Config; import com.ic.protocol.bean.ICLocation; import com.ic.protocol.bean.Runtime; import com.ic.protocol.bean.StringMessage; +import com.ic.protocol.bean.voicePacket; +import com.ic.protocol.service.protocolMainServer; import com.ic.protocol.utils.Connection; import com.ic.protocol.utils.Logger; import com.ic.protocol.utils.SharPreferenceUtil; +import com.ic.protocol.utils.Util; +import java.util.ArrayList; import java.util.HashMap; import static com.ic.protocol.LocationClient.LACATION_CYCLE; @@ -183,12 +188,16 @@ public class protocolAPIHelper { 字符串通过#号进行识别。 每个字符串如果发现 #,却又没有Header,“IW”则会被丢弃 */ - public boolean parserCmd(String cmd_msgbuf) { + public boolean parserCmd(byte[] bytes) { boolean iscmdComplete = false; boolean ret = true; String last_inCompletecmd = ""; + String cmd_msgbuf=new String(bytes); + log("bytes.size "+bytes.length); +// cmdbuf.append(cmd_msgbuf); cmdbuf.append(cmd_msgbuf); - /* + log("cmdbuf.size "+cmdbuf.length() +" "+cmdbuf.toString()); + /* 如果不是 #结尾,就认为 接收数据不全,置位。 */ if (cmdbuf.toString().endsWith(CMDEND)) { @@ -196,7 +205,8 @@ public class protocolAPIHelper { } String[] cmdlist = cmd_msgbuf.split(CMDEND); int listlen = cmdlist.length; - /* + log("listlen "+listlen); + /* 如果解析出来的cmdlist不是空,且数据不是完整cmd则保留 最后一条数据到last_inCompletecmd */ if (cmdlist.length > 0 && iscmdComplete == false) { @@ -210,12 +220,12 @@ public class protocolAPIHelper { log("found cmd keyid=" + key + " ,keyname=" + cmdMap.get(key) + " , " + cmdlist[i]); if (key == CMD_TYPE.BP28) { //如果是BP28则 后面的数据是音频,需要保留 - if ((i + 1) < cmdlist.length) { - //如果i+1 cmdlist确实在数组范围内,则可以进行数据处理 - if (cmdHandler!=null) cmdHandler.handleCmd(key, cmdlist[i] + "#" + cmdlist[i + 1]); - i++; + byte[] amrBuf; + int amrLen = getBP28Amrlen(cmdlist[i] ); + if (bytes.length > amrLen) { + if (cmdHandler != null) + cmdHandler.handleCmd(key, cmdlist[i], bytes); } - } else { if (cmdHandler!=null) cmdHandler.handleCmd(key, cmdlist[i]); } @@ -226,7 +236,40 @@ public class protocolAPIHelper { cmdbuf = new StringBuffer().append(last_inCompletecmd); return ret; } + public int getBP28Amrlen(String cmd) { + + String Name; + String appendIndex; + int packetCount; + int currentId; + int packetLen; + + + String[] msg=cmd.split(CMDSPLIT); + if (msg.length>=6){ + + Name=msg[1]; + appendIndex=msg[2]; + packetCount= Integer.valueOf(msg[3]); + currentId= Integer.valueOf(msg[4]); + packetLen= Integer.valueOf(msg[5]); + + StringBuffer stringBuffer=new StringBuffer(); + stringBuffer.append("getBP28AmrLen name = ").append(Name) + .append(",appendIndex = ").append(appendIndex) + .append(",packetCount = ").append(packetCount) + .append(",currentId = ").append(currentId) + .append(",packetLen = ").append(packetLen); + + log( stringBuffer.toString()); + return packetLen; + }else{ + log("getBP28AmrLen","format Error"); + + } + return -1; + } /*登录*/ public static String AP00(Runtime ds) { //示例数据:IWAP00867155030001063# @@ -241,6 +284,25 @@ public class protocolAPIHelper { .append(ds.getTotalStepCount()).append(CMDSPLIT).append(0/*rolltime*/).append(CMDEND).toString(); } + public static String AP10(Runtime ds){ + + /** + * IWAP10080524A2232.9806N11404.9355E000.1061830323.8706000908000502, + * 460,0,9520,3671, + * 00,zh-cn,00, + * 00为报警状态,00为无任何报警(01:SOS,02:低电,03:脱落报警,04:佩戴提醒,05/06:跌倒报警)) + * zh-cn:设备语言 + * 00:第一个0:是否需要回复地址信息,0:不回复,1回复. + * HOME|74-DE-2B-44-88-8C|97&HOME1|74-DE-2B-44-88-8C|97&HOME2|74-DE-2B-44-88-8C|97&HOME3|74-DE-2B-44-88-8C|97# + */ + return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP10)).append(ds.getShortDate()) + .append(ds.getGPSData()).append(ds.getShortTime()).append(ds.getGPSHeading()).append(String.format("%03d",abs(ds.getSignalStrength()))) + .append(ds.getGPSLocationStarNums()).append(ds.getBattery()).append("0") + .append(ds.getProtection()).append(ds.getWorkMode()).append(CMDSPLIT) + .append(ds.getLBSData()).append(CMDSPLIT).append(ds.getWifiInfo()).append(CMDEND).toString(); + + } + /*LBS+GPS混合定位*/ public static String AP01(Runtime ds) { //示例数据:IWAP01080524A2232.9806N11404.9355E000.1061830323.8706000908000102, @@ -269,7 +331,8 @@ public class protocolAPIHelper { public interface CmdHandler { - boolean handleCmd(CMD_TYPE type, String cmd); + boolean handleCmd(CMD_TYPE type, String cmd); + boolean handleCmd(CMD_TYPE type, String cmd,byte[] bytes); } @@ -350,7 +413,10 @@ public class protocolAPIHelper { log("data len is too small!"); } } - } + }//循环获取alarm数据结束 + + //do clean and set alarm things + } //IWBP85,867155030002145,410385,1,0,# @@ -530,20 +596,66 @@ public class protocolAPIHelper { public void handleBP03(String cmd){ log("BP03心跳接收成功"); } + + //处理 BP28 语音消息 - public void handleBP28(String cmd) { + public void handleBP28(Connection connection,String cmd,byte[] bytes) { //log("handleBP28 msg"+cmd); - String[] msg=cmd.split(CMDSPLIT); - if (msg.length>=7){ - log(msg[1]); - log(msg[2]); - log(msg[3]); - log(msg[4]); - log(msg[5]); - log(msg[6]); - +/** + * IWBP28, D3590D54,XXXX,6,1,1024,XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX# + * 说明: + * IW:标识符 + * BP28 : 命令字符 + * D3590D54:UNICODE编码,发送者名称 + * XXXX: 附加信息,在响应数据包时,将附加信息原样响应,类似流水号 + * 6:语音包分包总数 + * 1 :当前包数,第一包为1,第二包为2,。。。。。。同一个语音包的语音时间相同 + * 1024 :语音包长度 + * XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:当前音频数据, 每个音频数据包大小为1024字节,最后一包不足1024的取实际字节数 + * 语音包上传规则: + * 按包次序依次上传,上传后如果没有收到服务器的响应包,则继续上传该语音包。 + * 收到设备回复确认数据包接收成功状态后,继续开始依次上传下一个数据包。。。。。。 + * 如果设备回复确认数据包接收失败状态,则重复发送上一个数据包 + * 设备响应: IWAP28,D3590D54,XXXX,6,1,1# + * D3590D54:UNICODE编码,发送者名称 + * XXXX: 附加信息,原样返回 + * 6:语音包分包总数 + * 1:当前设备收到的是第几个包 + * 1:表示设备接受数据成功,0表示设备接受数据失败 + */ + String Name; + String appendIndex; + int packetCount; + int currentId; + int packetLen; + byte[] packetData; + + String[] msg= cmd.split(CMDSPLIT); + if (msg.length>=6){ + + Name=msg[1]; + appendIndex=msg[2]; + packetCount= Integer.valueOf(msg[3]); + currentId= Integer.valueOf(msg[4]); + packetLen= Integer.valueOf(msg[5]); + packetData= Util.subArray(bytes,msg[0].length()+msg[1].length()+msg[2].length()+msg[3].length()+msg[4].length()+msg[5].length()+6,bytes.length-1); + + StringBuffer stringBuffer=new StringBuffer(); + stringBuffer.append("recv BP28 name = ").append(Name) + .append(",appendIndex = ").append(appendIndex) + .append(",packetCount = ").append(packetCount) + .append(",currentId = ").append(currentId) + .append(",packetLen = ").append(packetLen) + .append(",packetDatalen = ").append(packetData.length); + + log( stringBuffer.toString()); + voicePacket.getInstance().appendVoice(Name,appendIndex,packetCount,currentId,packetLen,packetData); + connection.send(genStringMessage("AP28",AP28(Name,appendIndex,packetCount,currentId,1))); + }else{ log("handleBP28","format Error"); +// connection.send(genStringMessage("AP28",AP28(Name,appendIndex,packetCount,currentId,0))); + } } diff --git a/app/src/main/java/com/ic/protocol/bean/PictureContent.java b/app/src/main/java/com/ic/protocol/bean/PictureContent.java deleted file mode 100644 index c37797b9..00000000 --- a/app/src/main/java/com/ic/protocol/bean/PictureContent.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.ic.protocol.bean; - - -import com.ic.protocol.utils.Util; - -import java.io.File; -import java.util.ArrayList; - -public class PictureContent extends Content { - private PictureContent(String paramString1, String paramString2, int paramInt1, int paramInt2, int paramInt3, String paramString3, String paramString4, long paramLong) { super(2, paramString1, paramString2, paramInt1, paramInt2, paramInt3, paramString3, paramString4, paramLong); } - - public static PictureContent from(PictureContent paramPictureContent, byte[] paramArrayOfByte, File paramFile) { - byte b = paramArrayOfByte[0]; - byte[] arrayOfByte = new byte[b]; - System.arraycopy(paramArrayOfByte, 1, arrayOfByte, 0, b); - ArrayList arrayList = Util.split(arrayOfByte, (byte)59, 0); - StringBuilder stringBuilder1 = new StringBuilder(); - stringBuilder1.append(new String((byte[])arrayList.get(1))); - stringBuilder1.append(new String((byte[])arrayList.get(2))); - String str2 = stringBuilder1.toString(); - String str1 = new String((byte[])arrayList.get(4)); - StringBuilder stringBuilder2 =new StringBuilder( new String((byte[])arrayList.get(5))); - if ("1".equals(stringBuilder2)) { - stringBuilder2 = new StringBuilder(); - stringBuilder2.append(str1); - stringBuilder2.append(".png"); - str1 = stringBuilder2.toString(); - } else if ("2".equals(stringBuilder2)) { - stringBuilder2 = new StringBuilder(); - stringBuilder2.append(str1); - stringBuilder2.append(".jpg"); - str1 = stringBuilder2.toString(); - } else { - stringBuilder2 = new StringBuilder(); - stringBuilder2.append(str1); - stringBuilder2.append(".bmp"); - str1 = stringBuilder2.toString(); - } - int i = paramArrayOfByte.length - 1 - b; - paramPictureContent.content = Util.saveFile(paramArrayOfByte, paramArrayOfByte.length - i, i, paramFile, str1); - paramPictureContent.status = 2; - paramPictureContent.serverTime = str2; - return paramPictureContent; - } - - public static PictureContent placeHolderIn(int paramInt, String paramString1, String paramString2) { return new PictureContent(paramString2, null, 1, 1, paramInt, paramString1, null, System.currentTimeMillis()); } - - public static PictureContent placeHolderOut(int paramInt, String paramString1, String paramString2) { return new PictureContent(paramString2, null, 1, 2, paramInt, paramString1, null, System.currentTimeMillis()); } -} - - diff --git a/app/src/main/java/com/ic/protocol/bean/VoiceContent.java b/app/src/main/java/com/ic/protocol/bean/VoiceContent.java index 3d63f9b4..7467faea 100644 --- a/app/src/main/java/com/ic/protocol/bean/VoiceContent.java +++ b/app/src/main/java/com/ic/protocol/bean/VoiceContent.java @@ -6,7 +6,11 @@ import java.io.File; import java.util.ArrayList; public class VoiceContent extends Content { - private VoiceContent(String paramString1, String paramString2, int paramInt1, int paramInt2, int paramInt3, String paramString3, String paramString4, long paramLong) { super(1, paramString1, paramString2, paramInt1, paramInt2, paramInt3, paramString3, paramString4, paramLong); } + private VoiceContent(String paramString1, String paramString2, int paramInt1, int paramInt2, int paramInt3, String paramString3, String paramString4, long paramLong) + { + super(1, paramString1, paramString2, paramInt1, paramInt2, paramInt3, paramString3, paramString4, paramLong); + + } public static VoiceContent from(VoiceContent paramVoiceContent, byte[] paramArrayOfByte, File paramFile) { byte b = paramArrayOfByte[0]; @@ -31,8 +35,12 @@ public class VoiceContent extends Content { return paramVoiceContent; } - public static VoiceContent placeHolderIn(int paramInt, String paramString1, String paramString2) { return new VoiceContent(paramString2, null, 1, 1, paramInt, paramString1, null, System.currentTimeMillis()); } + public static VoiceContent placeHolderIn(int paramInt, String paramString1, String paramString2) { + return new VoiceContent(paramString2, null, 1, 1, paramInt, paramString1, null, System.currentTimeMillis()); + } - public static VoiceContent placeHolderOut(int paramInt, String paramString1, String paramString2) { return new VoiceContent(paramString2, null, 1, 2, paramInt, paramString1, null, System.currentTimeMillis()); } + public static VoiceContent placeHolderOut(int paramInt, String paramString1, String paramString2) { + return new VoiceContent(paramString2, null, 1, 2, paramInt, paramString1, null, System.currentTimeMillis()); + } } diff --git a/app/src/main/java/com/ic/protocol/bean/serverStatus.java b/app/src/main/java/com/ic/protocol/bean/serverStatus.java deleted file mode 100644 index 9feb0763..00000000 --- a/app/src/main/java/com/ic/protocol/bean/serverStatus.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.ic.protocol.bean; - -public class serverStatus { -} diff --git a/app/src/main/java/com/ic/protocol/bean/simStatus.java b/app/src/main/java/com/ic/protocol/bean/simStatus.java deleted file mode 100644 index 8d5f9711..00000000 --- a/app/src/main/java/com/ic/protocol/bean/simStatus.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.ic.protocol.bean; - -public class simStatus { -} diff --git a/app/src/main/java/com/ic/protocol/bean/stepCounter.java b/app/src/main/java/com/ic/protocol/bean/stepCounter.java deleted file mode 100644 index 990a9211..00000000 --- a/app/src/main/java/com/ic/protocol/bean/stepCounter.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.ic.protocol.bean; - -public class stepCounter { -} diff --git a/app/src/main/java/com/ic/protocol/bean/voicePacket.java b/app/src/main/java/com/ic/protocol/bean/voicePacket.java new file mode 100644 index 00000000..7036a963 --- /dev/null +++ b/app/src/main/java/com/ic/protocol/bean/voicePacket.java @@ -0,0 +1,92 @@ +package com.ic.protocol.bean; + +import java.util.ArrayList; + +public class voicePacket { + + + private static voicePacket gvoicePacket=null; + + + public static voicePacket getInstance(){ + if (gvoicePacket==null) + gvoicePacket=new voicePacket(); + return gvoicePacket; + } + String Name=null; + String appendIndex=null; + int packetCount =0; + ArrayList packetArray =new ArrayList(); + public class voicepacketItem{ + int currentId; + int packetLen; + byte[] packetData; + voicepacketItem(int _currentId, int _packetLen, byte[] _packetData){ + packetLen=_packetLen; + packetData=_packetData; + currentId=_currentId; + } + } + public boolean appendVoice(String _Name, String _appendIndex,int _packetCount,int _currentId, int _packetLen, byte[] _packetData){ + boolean ret=false; + if (_Name==null|| _appendIndex==null || _Name.isEmpty() || _appendIndex.isEmpty() ){ + return false; + } + if (packetArray.size()==0) + { + Name=_Name; + appendIndex=_appendIndex; + packetCount=_packetCount; + } + if (_packetCount==packetCount && appendIndex.equals(_appendIndex) && Name.equals(_Name) ){ + boolean packetfound=false; + for ( voicepacketItem item: packetArray ) { + if (item.currentId == _currentId){ + packetfound=true; + } + } + if (packetfound) + return false; + + packetArray.add(new voicepacketItem(_currentId,_packetLen,_packetData)); + + } + + return ret; + } + + public boolean isFinished(){ + return (packetCount!=0 && packetCount==packetArray.size()); + } + + public boolean isEmpty(){ + return packetArray.size()==0; + } + @Override + public String toString(){ + StringBuilder stringBuilder=new StringBuilder(); + if (Name==null|| appendIndex==null || Name.isEmpty() || appendIndex.isEmpty() ){ + return stringBuilder.toString(); + } + + stringBuilder.append("{ Name=").append(Name) + .append(", packetCount=").append(packetCount) + .append(", appendIndex=").append(appendIndex) + .append("["); + for (voicepacketItem item: packetArray ) { + stringBuilder.append("(").append(item.currentId) + .append(",").append(item.packetLen).append("},"); + } + stringBuilder.append("]}"); + + return stringBuilder.toString(); + } + + + public void clearPacket(){ + packetArray.clear(); + packetCount=0; + Name=null; + appendIndex=null; + } +} diff --git a/app/src/main/java/com/ic/protocol/service/SendChatMessage.java b/app/src/main/java/com/ic/protocol/service/SendChatMessage.java index 94cef5bd..c1b1e66c 100644 --- a/app/src/main/java/com/ic/protocol/service/SendChatMessage.java +++ b/app/src/main/java/com/ic/protocol/service/SendChatMessage.java @@ -1,29 +1,18 @@ package com.ic.protocol.service; -import android.content.ContentResolver; -import android.content.ContentUris; import android.content.Context; import android.content.Intent; -import android.database.Cursor; import android.net.Uri; import android.os.Bundle; import android.os.Message; import android.os.Messenger; -import android.provider.MediaStore; -import com.ic.protocol.bean.PictureContent; import com.ic.protocol.bean.Runtime; import com.ic.protocol.service.base.AbstractInvokeHandlerService; import com.ic.protocol.utils.Connection; import com.ic.protocol.utils.Logger; import com.ic.protocol.utils.SimSignalUtil; -import java.io.File; - -import rx.Observable; -import rx.Subscriber; -import rx.schedulers.Schedulers; - public class SendChatMessage extends AbstractInvokeHandlerService { private static final int LOCATION_TYPE = 7; @@ -89,8 +78,8 @@ public class SendChatMessage extends AbstractInvokeHandlerService { stringBuilder.append("number == "); stringBuilder.append(str1); Logger.i(stringBuilder.toString()); - final PictureContent pictureContent = PictureContent.placeHolderOut(1, str1, str); - final Uri uri = runtime.getDbHelper().insertOrUpdate(pictureContent, 0L); +// final PictureContent pictureContent = PictureContent.placeHolderOut(1, str1, str); +// final Uri uri = runtime.getDbHelper().insertOrUpdate(pictureContent, 0L); // Observable.create(new SendFileMessage(API.H30(paramRuntime, str1, "2", new File(str)), paramRuntime)).subscribeOn(Schedulers.io()).subscribe(new Subscriber() { // public void onCompleted() {} // @@ -148,7 +137,7 @@ public class SendChatMessage extends AbstractInvokeHandlerService { stringBuilder.append("number == "); stringBuilder.append(str2); Logger.i(stringBuilder.toString()); - final PictureContent pictureContent = PictureContent.placeHolderOut(1, str2, str1); +// final PictureContent pictureContent = PictureContent.placeHolderOut(1, str2, str1); // final Uri uri2 = paramRuntime.getDbHelper().insertOrUpdate(pictureContent, bundle3.getLong("id")); // FileMessage fileMessage = API.H30(paramRuntime, str2, "0", new File(str1)); // messenger = paramMessage.replyTo; diff --git a/app/src/main/java/com/ic/protocol/utils/NettyConnection.java b/app/src/main/java/com/ic/protocol/utils/NettyConnection.java index 7f8f2f5d..c01f6e99 100644 --- a/app/src/main/java/com/ic/protocol/utils/NettyConnection.java +++ b/app/src/main/java/com/ic/protocol/utils/NettyConnection.java @@ -1,6 +1,9 @@ package com.ic.protocol.utils; import android.content.Intent; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; import android.os.SystemClock; @@ -9,6 +12,7 @@ import com.ic.protocol.adapter.protocolAPIHelper; import com.ic.protocol.bean.StringMessage; import com.ic.protocol.service.protocolMainServer; +import java.io.UnsupportedEncodingException; import java.net.InetAddress; import java.net.InetSocketAddress; import java.nio.ByteBuffer; @@ -42,7 +46,7 @@ public class NettyConnection implements Connection { public boolean handleCmd(protocolAPIHelper.CMD_TYPE type, String cmd) { boolean ret=true; - Logger.i("handleCmd "+type.name() +" , cmd "+cmd); + Logger.i("handleCmd "+type.name() + " strLen="+cmd.length()); FileOutputUtil.fileOutput(protocolMainServer.getInstance().getApplicationContext(),"APILog", " recv " + cmd); switch (type){ case BP00: @@ -59,14 +63,14 @@ public class NettyConnection implements Connection { Logger.i("服务器收到心跳AP03"); DeliverCMDMessageToSystem("AP03",cmd);//通知下面线程状态变化 break; - case BP28: - API.handleBP28(cmd); - Logger.i("服务器收到语音AP28"); - DeliverCMDMessageToSystem("AP28",cmd);//通知下面线程状态变化 - - break; +// case BP28: +// API.handleBP28(NettyConnection.this ,cmd); +// Logger.i("服务器收到语音BP28"); +// DeliverCMDMessageToSystem("BP28",cmd);//通知下面线程状态变化 +// +// break; case BPTM: - API.handleBP28(cmd); +// API.handleBPTM(cmd); Logger.i("服务器收到校时命令APTM"); DeliverCMDMessageToSystem("APTM",cmd);//通知下面线程状态变化 break; @@ -92,6 +96,22 @@ public class NettyConnection implements Connection { return ret; } + + @Override + public boolean handleCmd(protocolAPIHelper.CMD_TYPE type, String cmd, byte[] bytes) { + + boolean ret=true; + Logger.i("handleCmd "+type.name() + " "+cmd+" bytelen="+bytes.length ); + FileOutputUtil.fileOutput(protocolMainServer.getInstance().getApplicationContext(),"APILog", " recv " +new String(bytes)); + switch (type) { + case BP28: + API.handleBP28(NettyConnection.this,cmd, bytes); + Logger.i("服务器收到语音BP28"); + DeliverCMDMessageToSystem("BP28", "");//通知下面线程状态变化 + + } + return ret; + } } ); @@ -238,32 +258,59 @@ public class NettyConnection implements Connection { private void initReadListener(){ //监听Socket的收包 - RxSocket.getInstance().read() - .subscribeOn(Schedulers.newThread()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe( - bytes -> { - //这里,应该去处理这个消息 - String msg=new String(bytes); - log("get Msg :"+msg+" (size)" + bytes.length); - - API.parserCmd(msg); - - }, - throwable -> { - log("get Msg throwable " +throwable); - //出现错误恢复读取线程。 - NettyConnection.this.initReadListener(); - }, - ()->{ - log("get Msg ()"); - } - ); - +// RxSocket.getInstance().read() +// .subscribeOn(Schedulers.newThread()) +// .observeOn(AndroidSchedulers.mainThread()) +// .subscribe( +// bytes -> { +// //这里,应该去处理这个消息 +// String msg=new String(bytes); +// log("get Msg :"+msg+" (size)" + bytes.length); +// +// API.parserCmd(msg,bytes); +// +// }, +// throwable -> { +// log("get Msg throwable " +throwable); +// //出现错误恢复读取线程。 +// NettyConnection.this.initReadListener(); +// }, +// ()->{ +// log("get Msg ()"); +// } +// ); + RxSocket.getInstance().setSocketReadCallback(new RxSocket.SocketReadCallback() { + @Override + public void onRecvMsg(byte[] bytes) { + + Message msg=new Message(); + Bundle bdl=new Bundle(); + bdl.putByteArray("RecvData",bytes); + msg.what=100; + msg.setData(bdl); + mHandler.sendMessage(msg); + } + }); } + private Handler mHandler=new Handler(new Handler.Callback() { + @Override + public boolean handleMessage(Message message) { + + if (message.what == 100){ + byte[] bytes=message.getData().getByteArray("RecvData"); + String msg= new String(bytes); + + log("get Msg :"+msg+" (size) byteslen" + bytes.length +" strlen"+ msg.length()); + API.parserCmd(bytes); + + } + return false; + } + }); + private void init_connection_listener(){ //监听Socket的连接状态 diff --git a/app/src/main/java/com/ic/protocol/utils/RxSocket.java b/app/src/main/java/com/ic/protocol/utils/RxSocket.java index 5e5ffbde..3ee09048 100644 --- a/app/src/main/java/com/ic/protocol/utils/RxSocket.java +++ b/app/src/main/java/com/ic/protocol/utils/RxSocket.java @@ -74,6 +74,7 @@ public class RxSocket { private ReadThread readThread = null; private boolean isReadThreadAlive = true; private SocketReconnectCallback socketReconnectCallback = null; + private SocketReadCallback socketReadCallback=null; // private SocketConnectionListener conectionListener = null; /* 方法 @@ -86,6 +87,9 @@ public class RxSocket { return connectStatus; } + public void setSocketReadCallback(SocketReadCallback callback){ + socketReadCallback=callback; + } // public void setConnectionListener(SocketConnectionListener callback){ // conectionListener=callback; // } @@ -359,6 +363,8 @@ public class RxSocket { for (int i = 0; i < length; i++) { bytes[i] = buf.get(i); } + if (socketReadCallback!=null) + socketReadCallback.onRecvMsg(bytes); readSubject.onNext(bytes); } } @@ -390,4 +396,8 @@ public class RxSocket { void onFail(String msg); } + public interface SocketReadCallback{ + void onRecvMsg(byte[] bytes); + } + } diff --git a/app/src/main/java/com/ic/protocol/utils/Util.java b/app/src/main/java/com/ic/protocol/utils/Util.java index 2b3d951f..d1c8ec0d 100644 --- a/app/src/main/java/com/ic/protocol/utils/Util.java +++ b/app/src/main/java/com/ic/protocol/utils/Util.java @@ -455,22 +455,22 @@ public class Util { } public static String saveFile(byte[] paramArrayOfByte, int paramInt1, int paramInt2, File paramFile, String paramString) { -// StringBuilder stringBuilder = new StringBuilder(); -// stringBuilder.append(UUID.randomUUID().toString()); -// stringBuilder.append("_"); -// stringBuilder.append(paramString); -// paramString = stringBuilder.toString(); -// paramFile = makeDir(paramFile, paramString); -// try { -// paramFile = new File(paramFile, paramString); -// BufferedSink bufferedSink = Okio.buffer(Okio.sink(paramFile)); -// bufferedSink.write(paramArrayOfByte, paramInt1, paramInt2); -// bufferedSink.close(); -// return paramFile.getAbsolutePath(); -// } catch (IOException paramArrayOfByte) { -// paramArrayOfByte.printStackTrace(); -// return null; -// } + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(UUID.randomUUID().toString()); + stringBuilder.append("_"); + stringBuilder.append(paramString); + paramString = stringBuilder.toString(); + paramFile = makeDir(paramFile, paramString); + try { + paramFile = new File(paramFile, paramString); + BufferedSink bufferedSink = Okio.buffer(Okio.sink(paramFile)); + bufferedSink.write(paramArrayOfByte, paramInt1, paramInt2); + bufferedSink.close(); + return paramFile.getAbsolutePath(); + } catch (IOException e) { + e.printStackTrace(); + + } return null; } @@ -503,53 +503,56 @@ public class Util { public static ArrayList split(byte[] paramArrayOfByte1, byte[] paramArrayOfByte2) { ArrayList arrayList = new ArrayList(); -// int k = paramArrayOfByte1.length; -// int m = paramArrayOfByte2.length; -// int i = 0; -// int j; -// for (j = 0; i < k; j = n) { -// int i1; -// int n; -// byte b = 0; -// while (true) { -// boolean bool = i + b; -// i1 = i; -// n = j; -// if (bool < k) { -// i1 = i; -// n = j; -// if (paramArrayOfByte1[bool] == paramArrayOfByte2[b]) { -// n = b + 1; -// b = n; -// if (n == m) { -// n = i - j; -// if (n != 0) { -// byte[] arrayOfByte = new byte[n]; -// System.arraycopy(paramArrayOfByte1, j, arrayOfByte, 0, n); -// arrayList.add(arrayOfByte); -// } -// i += m; -// n = i; -// i1 = i - 1; -// break; -// } -// continue; -// } -// } -// break; -// } -// i = i1 + 1; -// } -// i = paramArrayOfByte1.length - j; -// if (i != 0) { -// paramArrayOfByte2 = new byte[i]; -// System.arraycopy(paramArrayOfByte1, j, paramArrayOfByte2, 0, i); -// arrayList.add(paramArrayOfByte2); -// } + int k = paramArrayOfByte1.length; + int m = paramArrayOfByte2.length; + int i = 0; + int j; + int n; + for (j = 0; i < k; j = n) { + + int i1; + byte b = 0; + while (true) { + int bool = i + b; + i1 = i; + n = j; + if (bool < k) { + i1 = i; + n = j; + if (paramArrayOfByte1[bool] == paramArrayOfByte2[b]) { + b = (byte)(b + 1); + + if (n == m) { + n = i - j; + if (n != 0) { + byte[] arrayOfByte = new byte[n]; + System.arraycopy(paramArrayOfByte1, j, arrayOfByte, 0, n); + arrayList.add(arrayOfByte); + } + i += m; + n = i; + i1 = i - 1; + break; + } + continue; + } + } + break; + } + i = i1 + 1; + } + i = paramArrayOfByte1.length - j; + if (i != 0) { + paramArrayOfByte2 = new byte[i]; + System.arraycopy(paramArrayOfByte1, j, paramArrayOfByte2, 0, i); + arrayList.add(paramArrayOfByte2); + } return arrayList; } - public static byte[] subArray(byte[] paramArrayOfByte, int paramInt) { return subArray(paramArrayOfByte, paramInt, paramArrayOfByte.length); } + public static byte[] subArray(byte[] paramArrayOfByte, int paramInt) { + return subArray(paramArrayOfByte, paramInt, paramArrayOfByte.length); + } public static byte[] subArray(byte[] paramArrayOfByte, int paramInt1, int paramInt2) { paramInt2 -= paramInt1; @@ -558,8 +561,12 @@ public class Util { return arrayOfByte; } - public static void turnOffWifiForSleep(Context paramContext, Runtime paramRuntime) { paramRuntime.getContextProxy().getWifiManager().setWifiEnabled(false); } + public static void turnOffWifiForSleep(Context paramContext, Runtime paramRuntime) { + paramRuntime.getContextProxy().getWifiManager().setWifiEnabled(false); + } - public static void turnOnWifiForConnect(Context paramContext, Runtime paramRuntime) { paramRuntime.getContextProxy().getWifiManager().setWifiEnabled(true); } + public static void turnOnWifiForConnect(Context paramContext, Runtime paramRuntime) { + paramRuntime.getContextProxy().getWifiManager().setWifiEnabled(true); + } } diff --git a/app/version_code.properties b/app/version_code.properties index 7e09d1ab..9a7e2953 100644 --- a/app/version_code.properties +++ b/app/version_code.properties @@ -1,2 +1,2 @@ -#Thu Jan 16 10:16:39 CST 2020 -VERSION_CODE=326 +#Thu Jan 16 18:40:41 CST 2020 +VERSION_CODE=327