我正在使用Android应用程序,作为应用程序的一部分,我希望用户能够查看,选择和修改用户联系人。我的主要活动是出于可用性原因(从用户端)扩展TabActivity。因此,在一个标签中,我想显示用此代码完成此操作的用户联系人:mTabHost.addTab(mTabHost.newTabSpec("tab_test2").setIndicator("Contacts").setContent(new Intent(Intent.ACTION_PICK, People.CONTENT_URI)));
使用默认电话联系活动。我的android清单是:`
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.READ_OWNER_DATA"/>
<application android:icon="@drawable/icon" android:theme="@android:style/Theme.NoTitleBar">
<activity android:name=".WaveCally"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".streamer"
android:label="@string/stream">
</activity>
</application>
<uses-sdk android:minSdkVersion="4" />
`但我在日志中不断收到安全异常,活动崩溃了。有任何想法吗? 另外正如我所提到的,我想修改联系人(主要是添加一些额外的字段),为此我必须得到contantprovider并在每个联系人中添加额外的字段?如果我从上述活动中选择一个联系人,那么这些额外的字段是否可用?
答案 0 :(得分:2)
您需要在应用程序清单中声明您的应用程序将访问联系人。 (android.permission.READ_CONTACTS
)
这是你需要做的:
http://developer.android.com/guide/topics/manifest/uses-permission-element.html
基本上,在应用清单中添加以下行(在打开清单标记后立即):
<uses-permission android:name="android.permission.READ_CONTACTS" />