URI(统一资源标识符)?

时间:2017-03-19 19:14:11

标签: android

  1. Uri在android中实际做了什么?

  2. ContactsContract.Contacts.CONTENT_URI

    这里CONTENT_URI的目的是什么?

  3. Uri uri = data.getData(); Intent intent = new Intent(Intent.ACTION_VIEW, uri);

    为什么他们在这里使用Uri?

  4. 是否有任何 替代 的Uri?

  5. P.S我用谷歌搜索了它,去了AndroidDevelopers网站,仍然感到困惑。

    参考代码

    @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
        }
    
        public boolean onTouchEvent(MotionEvent motionEvent) {  
            if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) {   
                startActivityForResult(new Intent
              (Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI),PICK_CONTACT_REQUEST);
    
                return true;
            }
            return false;
        }
    
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    
            if (requestCode == PICK_CONTACT_REQUEST) {
                if (resultCode == RESULT_OK) {
                    Uri uri = data.getData();
                    Intent intent = new Intent(Intent.ACTION_VIEW, uri);  
                    startActivity(intent);
                }
            }
        }
    

    不是我应该把这个名字放在这里 - > new Intent(Intent.ACTION_VIEW, URI );

2 个答案:

答案 0 :(得分:2)

  

Uri在android中实际做了什么?

它与互联网上的相同:它是一个地址,用于识别某些内容。 https://stackoverflow.com/questions/42891003/uriuniform-resource-identifier也是一个URI。

uniform resource identifier (URI)的概念已存在了几十年。

  

CONTENT_URI的目的是什么?

这是一个标识内容集合的地址,特别是由ContactsContract ContentProvider管理的联系人集合。

  

为什么他们在这里使用Uri?

Intent说“我想查看一些内容,其内容由此Uri标识”。我们必须以某种方式识别内容 ,并且在Android Uri中是识别内容的标准方式。

除此之外,问“为什么开发者X选择做Y?”?不是Stack Overflow的好格式。唯一能够明确回答这个问题的是开发者X,开发者X不太可能在这里提供帮助并看到你的问题。

  

Uri有替代品吗?

不一般。

  

不是我应该把这个名字放在这里

Intent有几个构造函数。

将Java Class对象作为第二个参数的构造函数是“显式Intent”,用于标识要使用的特定组件(例如,要启动的活动)

采用操作字符串(例如ACTION_VIEW)和可选的Uri的构造函数是“隐式Intent”。这标识了要执行的一些通用操作,Android将尝试识别可以处理该操作的组件。在许多情况下,针对Uri标识的某些内容执行操作(例如,查看此网页,编辑此联系人)。

答案 1 :(得分:-1)

就像URL(网站)一样,URI可以帮助您存储网络地址的 ABSOLUTE PATH / LINK 或Android系统中的任何元素< em>联系A的路径。在上面的代码中,URI用于存储您尝试获取的联系人的地址(路径)。