我正在努力从我的应用程序中获取电话簿和SIM卡的所有联系人.我想将所有联系人存储在我的应用程序SQLite DB中.我正在使用的代码在正常条件下正常工作.在以下条件下遇到问题:
我的代码不向我提供这两种类型的联系人.我使用以下代码:
public void getDefaultContactsToDB(){
CallBackDatabase callbackDB = new CallBackDatabase(RequestCallBack.this);
callbackDB.open();
//clean the database before entering new values.
callbackDB.deleteTable(CallBackDatabase.DATABASE_TABLE);
ContentResolver cr = getContentResolver();
Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI,null, null, null, null);
if (cur.getCount() > 0) {
while (cur.moveToNext()) {
String id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
Cursor cur1 = cr.query(
ContactsContract.CommonDataKinds.Email.CONTENT_URI, null,
ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = ?",
new String[]{id}, null);
while (cur1.moveToNext()) {
//to get the contact names
ArrayList<String> numbers= new ArrayList<String>();
String contactNoumber="";
String name=cur1.getString(cur1.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
if(name!=null){
Log.e("Name :", name);
if(name.equalsIgnoreCase("011999999999999999")){ …Run Code Online (Sandbox Code Playgroud) 我正在使用以下代码在Media Player的帮助下播放一首歌,
mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource( "sound_file_filepath" );
mediaPlayer.prepareAsync();
mediaPlayer.setOnPreparedListener(new OnPreparedListener()
{
@Override
public void onPrepared(MediaPlayer mp)
{
mediaPlayer.start();
}
});
Run Code Online (Sandbox Code Playgroud)
现在我在我的.xml文件中有一个切换图像,它首先显示一个播放图像.点击/触摸播放图像后,它将启动歌曲并用停止图像替换图像.
现在我的问题是我怎么知道我的声音已经播放完毕?我非常清楚isPlaying()方法,如果歌曲正在运行则返回true,否则返回false.但是我应该在何时何地检查此条件以再次显示播放图像?