android:authorities="com.ic.fzd.settings"
android:exported="true" />
+
+ <provider
+ android:name=".provider.FZDAlarmProvider"
+ android:authorities="com.ic.provider.alarm"
+ android:exported="true" />
+
<provider
android:name=".provider.AiInfoProvider"
android:authorities="com.ic.ai.info"
public String time;\r
//星期是1~7\r
public String week;\r
+ public String laterRing;\r
\r
public Alarm(String _time, String _week, String _ring, String _status) {\r
this.time = _time;\r
--- /dev/null
+package com.enqualcomm.support.provider;
+
+import android.content.ContentProvider;
+import android.content.ContentValues;
+import android.content.UriMatcher;
+import android.database.Cursor;
+import android.database.sqlite.SQLiteDatabase;
+import android.net.Uri;
+import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
+import android.text.TextUtils;
+
+public class FZDAlarmProvider extends ContentProvider {
+
+ private static UriMatcher sUriMatcher;
+ private static final int MATH_CODE_TABLE = 1;
+
+ public static final String PATH = "alarm";
+ public static final String AUTHORITY = "com.ic.provider.alarm";
+ public static final String ALARMS = "content://" + AUTHORITY + "/" + PATH;
+
+ static {
+ sUriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
+ sUriMatcher.addURI(AUTHORITY, PATH, MATH_CODE_TABLE);
+ }
+
+ private FZDDatabaseHelper mDatabase;
+
+ @Override
+ public boolean onCreate() {
+ mDatabase = new FZDDatabaseHelper(getContext());
+ return false;
+ }
+
+ /**
+ * 查询数据
+ *
+ * @param uri
+ * @param projection
+ * @param selection
+ * @param selectionArgs
+ * @param sortOrder
+ * @return
+ */
+ @Nullable
+ @Override
+ public Cursor query(@NonNull Uri uri,
+ @Nullable String[] projection,
+ @Nullable String selection,
+ @Nullable String[] selectionArgs,
+ @Nullable String sortOrder) {
+ //匹配规则
+ int match = sUriMatcher.match(uri);
+ SQLiteDatabase readableDatabase = mDatabase.getReadableDatabase();
+ if (match == MATH_CODE_TABLE) {
+ return readableDatabase.query(FZDDatabaseHelper.tb_alarm,
+ projection,
+ selection,
+ selectionArgs,
+ null, null, sortOrder);
+ }
+ return null;
+ }
+
+ @Nullable
+ @Override
+ public String getType(@NonNull Uri uri) {
+ return null;
+ }
+
+ @Nullable
+ @Override
+ public Uri insert(@NonNull Uri uri,
+ @Nullable ContentValues values) {
+ int match = sUriMatcher.match(uri);
+ if (match == MATH_CODE_TABLE) {
+ SQLiteDatabase writableDatabase = mDatabase.getWritableDatabase();
+ //判断是否有存在吧,确保唯一,删除再添加吧,否则也是添加不进去的
+ String alarmId = values.getAsString(FZDDatabaseHelper.alarm_id);
+ if (!TextUtils.isEmpty(alarmId)) {
+ writableDatabase.delete(FZDDatabaseHelper.tb_alarm,
+ FZDDatabaseHelper.alarm_id + "=?", new String[]{
+ values.getAsString(alarmId)
+ });
+ }
+ long insert = writableDatabase.insert(FZDDatabaseHelper.tb_alarm, null, values);
+ if (getContext() != null) {
+ getContext().getContentResolver().notifyChange(uri, null);
+ }
+ return Uri.parse(AUTHORITY + "/" + PATH + "/" + insert);
+ }
+ return null;
+ }
+
+
+ @Override
+ public int delete(@NonNull Uri uri,
+ @Nullable String selection,
+ @Nullable String[] selectionArgs) {
+ int match = sUriMatcher.match(uri);
+ if (match == MATH_CODE_TABLE) {
+ SQLiteDatabase writableDatabase = mDatabase.getWritableDatabase();
+ int delete = writableDatabase.delete(FZDDatabaseHelper.tb_alarm, selection, selectionArgs);
+ if (getContext() != null) {
+ getContext().getContentResolver().notifyChange(uri, null);
+ }
+ return delete;
+ }
+ return 0;
+ }
+
+ @Override
+ public int update(@NonNull Uri uri,
+ @Nullable ContentValues values,
+ @Nullable String selection,
+ @Nullable String[] selectionArgs) {
+ int match = sUriMatcher.match(uri);
+ if (match == MATH_CODE_TABLE) {
+ SQLiteDatabase writableDatabase = mDatabase.getWritableDatabase();
+ int update = writableDatabase.update(FZDDatabaseHelper.tb_alarm, values, selection, selectionArgs);
+ if (getContext() != null) {
+ getContext().getContentResolver().notifyChange(uri, null);
+ }
+ return update;
+ }
+ return 0;
+ }
+}
public static final String flId = "_id";
public static final String flState = "state";
public static final String flCount = "count";
- public static final String flCreateTime = "create_time";
- public static final String flUpdateTime = "update_time";
+ public static final String createTime = "create_time";
+ public static final String updateTime = "update_time";
public interface FollowState {
int unread = 0;
" integer, " +
flCount +
" integer, " +
- flCreateTime +
+ createTime +
" date, " +
- flUpdateTime +
+ updateTime +
" date)";
ICLogger.d(createFollow);
db.execSQL(createFollow);
" date)";
ICLogger.d(createSettings);
db.execSQL(createSettings);
+ //創建闹钟表
+ String createAlarms = "create table " +
+ tb_alarm +
+ " (" +
+ alarm_id +
+ " integer primary key autoincrement, " +
+ alarm_time +
+ " text, " +
+ alarm_week +
+ " text, " +
+ alarm_ring +
+ " text, " +
+ alarm_status +
+ " text, " +
+ alarm_name +
+ " text, " +
+ alarm_later +
+ " text, " +
+ sCreateTime +
+ " date, " +
+ sUpdateTime +
+ " date)";
+ ICLogger.d(createAlarms);
+ db.execSQL(createAlarms);
}
+
+ //闹钟数据库
+ //_id,时间,循环星期,铃声,状态,名称
+ public static final String tb_alarm = "alarm";
+ public static final String alarm_id = "_id";
+ public static final String alarm_time = "time";
+ public static final String alarm_week = "week";
+ public static final String alarm_ring = "ring";
+ public static final String alarm_status = "status";
+ public static final String alarm_name = "name";
+ public static final String alarm_later = "alarm_later";
+
+
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
//升级数据库
ContentValues contentValues = new ContentValues();
contentValues.put(FZDDatabaseHelper.flState, FZDDatabaseHelper.FollowState.unread);
contentValues.put(FZDDatabaseHelper.flCount, count);
- contentValues.put(FZDDatabaseHelper.flCreateTime, System.currentTimeMillis());
- contentValues.put(FZDDatabaseHelper.flUpdateTime, System.currentTimeMillis());
+ contentValues.put(FZDDatabaseHelper.createTime, System.currentTimeMillis());
+ contentValues.put(FZDDatabaseHelper.updateTime, System.currentTimeMillis());
runtime.getContextProxy().getResolver().insert(
Uri.parse(FZDFollowProvider.FOLLOW),
contentValues
import com.enqualcomm.support.bean.StringMessage;
import com.enqualcomm.support.bean.VoiceContent;
import com.enqualcomm.support.bean.voicePacket;
+import com.enqualcomm.support.provider.FZDAlarmProvider;
import com.enqualcomm.support.provider.FZDDatabaseHelper;
import com.enqualcomm.support.provider.FZDSettingsProvider;
import com.enqualcomm.support.service.HeartRateManager;
mRuntime = runtime;
}
- private StringBuffer cmdbuf = new StringBuffer();
+ private StringBuffer cmdBuf = new StringBuffer();
/*
输入的字符串,如果有完整命令,返回 命令名
String cmd_msgbuf = new String(bytes);
ICLogger.d("bytes.size " + bytes.length);
//cmdbuf.append(cmd_msgbuf);
- cmdbuf.append(cmd_msgbuf);
- ICLogger.d("cmdbuf.size " + cmdbuf.length() + " " + cmdbuf.toString());
+ cmdBuf.append(cmd_msgbuf);
+ ICLogger.d("cmdbuf.size " + cmdBuf.length() + " " + cmdBuf.toString());
/*
如果不是 #结尾,就认为 接收数据不全,置位。
*/
- if (cmdbuf.toString().endsWith(CMDEND)) {
+ if (cmdBuf.toString().endsWith(CMDEND)) {
iscmdComplete = true;
}
String[] cmdlist = cmd_msgbuf.split(CMDEND);
}
}
- cmdbuf = new StringBuffer().append(last_inCompletecmd);
+ cmdBuf = new StringBuffer().append(last_inCompletecmd);
return ret;
}
cmdLen += alarmCount.length() + 1;
String substring = cmd.substring(cmdLen);
String[] alarmItemArray = substring.split("@");
+ ContentResolver resolver = mRuntime.getContextProxy().getResolver();
+ //闹钟下发,也是要清空闹钟的
+ resolver.delete(Uri.parse(FZDAlarmProvider.ALARMS), null, null);
for (String itemStr : alarmItemArray) {
ICLogger.d("itemStr==> " + itemStr);
String[] itemDetail = itemStr.split(CMDSPLIT);
//第四个是开关
String isOpen = itemDetail[3];
ICLogger.d("isOpen == > " + isOpen);
+ //如果是全部关闭,那么所有的闹钟都会为0
+ if ("0".equals(isAllOpen)) {
+ isOpen = "0";
+ }
+ if (TextUtils.isEmpty(alarmTime)) {
+ continue;
+ }
//添加到闹钟数据库中
+ Alarm alarmItem = new Alarm("ST" + alarmTime.substring(0, 2) + "." + alarmTime.substring(2),
+ "W" + weekItem, "CON", "1".equals(isOpen) ? "ON" : "OFF", alarmName);
+ ICLogger.d("alarmItem == > " + alarmName);
+ //设置闹钟
//TODO:
+ //入库
+ ContentValues contentValues = new ContentValues();
+ contentValues.put(FZDDatabaseHelper.alarm_name, alarmItem.name);
+ contentValues.put(FZDDatabaseHelper.alarm_week, alarmItem.week);
+ contentValues.put(FZDDatabaseHelper.alarm_ring, alarmItem.ring);
+ contentValues.put(FZDDatabaseHelper.alarm_time, alarmItem.time);
+ contentValues.put(FZDDatabaseHelper.alarm_status, alarmItem.status);
+ contentValues.put(FZDDatabaseHelper.updateTime, System.currentTimeMillis());
+ contentValues.put(FZDDatabaseHelper.createTime, System.currentTimeMillis());
+ resolver.insert(Uri.parse(FZDAlarmProvider.ALARMS), contentValues);
}
} catch (Exception e) {
e.printStackTrace();
-#Thu Jun 24 11:46:15 CST 2021
+#Fri Jun 25 15:34:00 CST 2021
>>>>>>>=b405d1184f3616d4e894d199cee0eb91613a68db
-VERSION_CODE=843
-=\=\=\=\=\=\=
+VERSION_CODE=854
<<<<<<<=HEAD
+=\=\=\=\=\=\=