代码之家  ›  专栏  ›  技术社区  ›  bytebender

Intent.getData文件()在尝试读取设备上的联系人数据时为空

  •  1
  • bytebender  · 技术社区  · 15 年前

    但是当我试着在运行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;
            }
    
        };
    
    1 回复  |  直到 15 年前
        1
  •  1
  •   CommonsWare    15 年前

    有一些可能性。

    首先,尝试从 People.CONTENT_URI Contacts.CONTENT_URI . 我对返回空联系人没有任何问题。这是一个 sample project .

    如果这些都没有帮助,可能是你的设备固件有一个错误。我很想知道,在这种情况下,这是什么装置。