需求:在默认的日历中预置一条不可删除的活动,并且设定其中的默认参数。
平台:80N
tools:NavicatPremium、adb
解决方案:通过添加数据库的方式将活动预置到Calendar的数据库中
修改路径:packages/providers/CalendarProvider/src/com/android/providers/calendar/CalendarDatabaseHelper.java
导包:
// add 20180113 Calendar Event
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
// end
添加方法:readRaw(int index)
// add 20180113 Calendar Event
public String readRaw(int index){
try {
//获取文件中的内容
InputStream inputStream=mContext.getResources().openRawResource(index);
//将文件中的字节转换为字符
InputStreamReader isReader=new InputStreamReader(inputStream,"UTF-8");
//使用bufferReader去读取字符
BufferedReader reader=new BufferedReader(isReader);
String out="";
try {
while((out=reader.readLine())!=null){
Log.d("lds","======="+out);
return out;
}
} catch (IOException e) {
e.printStackTrace();
return "";
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
return "";
}
return "";
}
//end
插入数据库:
在onCreate方法中进行插入数据库操作:
public void onCreate(SQLiteDatabase db) {
bootstrapDB(db);
// add liudongsheng 20180113 Calendar Event
db.execSQL(readRaw(R.raw.sql0));
db.execSQL(readRaw(R.raw.sql1));
db.execSQL(readRaw(R.raw.sql2));
db.execSQL(readRaw(R.raw.sql3));
// end
}
在onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)方法中也进行数据库插入操作
// add 20180113 Calendar Event
db.execSQL(readRaw(R.raw.sql0));
db.execSQL(readRaw(R.raw.sql1));
db.execSQL(readRaw(R.raw.sql2));
db.execSQL(readRaw(R.raw.sql3));
// end
long endWhen = System.nanoTime();
Log.d(TAG, "Calendar upgrade took " + ((endWhen - startWhen) / 1000000) + "ms");
// Bump this to the next hundred at each major release.
static final int DATABASE_VERSION = 606;
final int itemId = item.getItemId();
+ Log.d("log_calendar","mEventId = " + mEventId);//打印出预置的那条活动的ID
if (itemId == android.R.id.home) {
Utils.returnToCalendarHome(mContext);
mActivity.finish();
@@ -1968,10 +1969,16 @@ public class EventInfoFragment extends DialogFragment implements OnCheckedChange
MenuItem edit = mMenu.findItem(R.id.info_action_edit);
MenuItem changeColor = mMenu.findItem(R.id.info_action_change_color);
if (delete != null) {
+ if(mEventId == 8){
+ mCanModifyCalendar=false;//根据ID隐藏掉删除选项
+ }
delete.setVisible(mCanModifyCalendar);
delete.setEnabled(mCanModifyCalendar);
}
if (edit != null) {
+ if(mEventId == 8){
+ mCanModifyEvent=false;//根据ID隐藏掉删除选项
+ }
edit.setVisible(mCanModifyEvent);
edit.setEnabled(mCanModifyEvent);
}
5680



被折叠的 条评论
为什么被折叠?



