联系人铃声设置,但是当该联系人来电android.process.phone丧生 [英] Contact Ringtone set but android.process.phone killed when that contact calls

查看:181
本文介绍了联系人铃声设置,但是当该联系人来电android.process.phone丧生的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想设置存储在我的 /存储/ sdcard0 /铃声来接触我希望铃声(MP3文件)。在运行应用程序,铃声会保存,我可以看到它上市的时候我打开该联系人。然而,当来电联系。

我不明白的电话,我的屏幕上出现以下消息:过程com.android.phone停止
下面是code,我现在用的设置铃声的联系人 -

 注:K是它可以对.MP3剪辑文件名和路径的File对象   字符串STR1 = c.getString(c.getColumnIndexOrThrow(_ ID));   乌里localUri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_URI,STR1);   ContentValues​​ localContentValues​​ =新ContentValues​​();   localContentValues​​.put(ContactsContract.Data.RAW_CONTACT_ID,使用ContactID);   localContentValues​​.put(ContactsContract.Contacts.CUSTOM_RINGTONE,k.getAbsolutePath());   getContentResolver()更新(localUri,localContentValues​​,NULL,NULL);

logcat的错误,当联系人呼叫:

  01-16 15:27:09.632:E / AndroidRuntime(24282):致命异常:主要
01-16 15:27:09.632:E / AndroidRuntime(24282):显示java.lang.NullPointerException
01-16 15:27:09.632:E / AndroidRuntime(24282):在com.android.phone.Ringer.isValidRingtoneURI(Ringer.java:742)
01-16 15:27:09.632:E / AndroidRuntime(24282):在com.android.phone.CallNotifier.onQueryComplete(CallNotifier.java:2079)


解决方案

您应该提供开放的,而不是绝对路径(见<一href=\"http://developer.android.com/reference/android/provider/ContactsContract.ContactOptionsColumns.html#CUSTOM_RINGTONE\"相对=nofollow>这里):

 乌里uriOfRt = Uri.fromFile(新文件(k.getAbsolutePath()));
localContentValues​​.put(ContactsContract.Contacts.CUSTOM_RINGTONE,uriOfRt);

I am trying to set a ringtone(mp3 file) stored on my /storage/sdcard0/Ringtones to a contact I wish. On running the app, the ringtone gets saved and I can see it listed when I open that contact. However, when that contact calls.

I do not get the call and the below message appears on my screen : process com.android.phone stops. Below is the code which I am using to set ringtone to a contact -

   Nb: K is the File object which has the filename and path for the .mp3 clip  

   String str1 = c.getString(c.getColumnIndexOrThrow("_id"));

   Uri localUri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_URI, str1);

   ContentValues localContentValues = new ContentValues();

   localContentValues.put(ContactsContract.Data.RAW_CONTACT_ID, contactId);

   localContentValues.put(ContactsContract.Contacts.CUSTOM_RINGTONE, k.getAbsolutePath());

   getContentResolver().update(localUri, localContentValues, null, null); 

Logcat error when contact calls :

01-16 15:27:09.632: E/AndroidRuntime(24282): FATAL EXCEPTION: main
01-16 15:27:09.632: E/AndroidRuntime(24282): java.lang.NullPointerException
01-16 15:27:09.632: E/AndroidRuntime(24282):    at com.android.phone.Ringer.isValidRingtoneURI(Ringer.java:742)
01-16 15:27:09.632: E/AndroidRuntime(24282):    at com.android.phone.CallNotifier.onQueryComplete(CallNotifier.java:2079)

解决方案

You should provide Uri rather than absolute path (see here):

Uri uriOfRt = Uri.fromFile(new File( k.getAbsolutePath()));    
localContentValues.put(ContactsContract.Contacts.CUSTOM_RINGTONE, uriOfRt);

这篇关于联系人铃声设置,但是当该联系人来电android.process.phone丧生的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆