SoundRecorder/src/com/android/soundrecorder/ListActivity.java
public void onCreateContextMenu() {
if(!StorageUtil.isForPoliceUse()){
menu.add(0, MENU_DELETE, 1, getString(R.string.list_menu_delete));
}
}
二、录音时间
1.数据库/data/data/com.android.providers.media/databases # sqlite3 external.db
SoundRecorder/src/com/android/soundrecorder/SoundRecorder.java
class addToMediaDBThread extends AsyncTask(){
protected void onPostExecute(){//该线程退出时更新
}
}
public Uri addToMediaDB(){
cv.put(MediaStore.Audio.Media.DURATION, mRecordingDuration);
}
SoundRecorder.this.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE), Uri.fromFile(file));//广播通知MediaScanner更新media数据库
MediaScanner解析
SoundRecorder/src/com/android/soundrecorder/RecordListAdapter.java
protected ArrayList<Record> doInBackground(){
int duration = cursor.getString(MediaStore.Audio.Media.DURATION);
}
2.mediaplayer
SoundRecorder/src/com/android/soundrecorder/RecordListAdapter.java
public View getView(){
a = mPlayer.prepare();
}
三、更新录音列表
SoundRecorder/src/com/android/soundrecorder/RecordListAdapter.java
void updata(){
new Refresh.execute();
}
public View getView() {
mRecordList.get(position)
}
四、media数据库
providers/MediaProvider/src/com/android/providers/media/MediaProvider.java