3

我的應用使用自定義ContentProvider將聯繫人'Bob'添加到地址簿中。 在Android Contacts應用程序中,Bob與其他任何(Google)聯繫人一樣。但是當我在聯繫人應用中編輯Bob時,我的應用程序提供的數據不可編輯。到現在爲止還挺好。使用Android聯繫人應用編輯由自定義ContentProvider添加的原始聯繫人

我的問題是:從我的應用程序中,有一個方法來火了聯繫人應用程序,在某種程度上,它允許用戶編輯屬於我的應用程序鮑勃的部分?

我曾嘗試使用相應Intent,如在本Android guide說明,但使用原料接觸uri以用於鮑勃

Uri rawUri = getRawContactUri("Bob"); 
Intent intent = new Intent(Intent.ACTION_EDIT, rawUri); 
startActivityForResult(intent, EDIT_CONTACT_RESULT); 

這帶來了聯繫人應用程序,但仍沒有編輯的可能性鮑勃的數據。

有很多關於如何覆蓋如何open your app from within the Contacts app when a custom field is selectedhow to fire ACTION_EDIT correctly的問題。
但我沒有找到任何聲明 - 包括參考 - 如果可以使用通訊錄應用程序讓用戶編輯自定義原始聯繫人。有沒有人有線索,最好是參考?

回答

1

您需要EditSchema添加到您的contact.xml文件,並添加元數據,指着你的清單文件的SyncService節文件,像這樣:

<service 
    android:name=".syncadapter.SyncService" 
    android:exported="true"> 

    <intent-filter> 
     <action android:name="android.content.SyncAdapter" /> 
    </intent-filter> 

    <meta-data 
     android:name="android.content.SyncAdapter" 
     android:resource="@xml/syncadapter" /> 
    <meta-data 
     android:name="android.provider.CONTACTS_STRUCTURE" 
     android:resource="@xml/contacts" /> 
</service> 

這裏是例子EditSchema的官方來源:http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android-apps/4.2.2_r1/packages/apps/Contacts/tests/res/xml/test_basic_contacts.xml/

相關問題