我正在使用api 1.6编写我的应用程序。代码在模拟器1.6-2.2上运行得很好。
但是当我尝试在运行2.1 data.getData()
的设备上调试它时,返回null。我在AndroidManifest.xml <uses-permission android:name="android.permission.READ_CONTACTS"/>
任何人都有任何想法。我是android新手,谢谢。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button btnTest = (Button) findViewById(R.id.btnTest);
btnTest.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_PICK, People.CONTENT_URI);
startActivityForResult(intent, ACTIVITY_PICK_CONTACT);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case (ACTIVITY_PICK_CONTACT):
if (resultCode == Activity.RESULT_OK) {
// This is where it is broke
Uri uri = data.getData();
Intent intent = new Intent(this, PickContactInfo.class);
intent.putExtra(Keys.CONTACT_URI, uri.toString());
startActivity(intent);
}
break;
}
};
答案 0 :(得分:1)
有几种可能性。
首先,尝试从People.CONTENT_URI
切换到Contacts.CONTENT_URI
。我没有遇到返回null联系人的问题。这是sample project。
其次,确保您选择的联系人是设备本身的联系人(与从Facebook,Exchange等同步的联系人)。旧API仅适用于设备上的联系人。
如果这些都没有帮助,则设备中的固件可能存在错误。在这种情况下,我有兴趣知道这是什么设备。