android 개발자 파일을 검색하고 읽었지만 콘텐츠 제공자에게 URI 권한 부여에 대한 만족스러운 답변을 찾지 못했습니다. 누구든지 더 자세하고 더 단순하게 설명 할 수 있습니까? 제 질문은 : 어떤 보조금이 사용하고 있습니까? 권한 부여 권한 간 true와 false의 차이점 사실을 사용해야 할 때? 거짓 일 때? 및 자세한 내용은 높이 평가됩니다.콘텐츠 공급자 권한을 부여합니다. uri permission
답변
어떤 보조금이 사용하고 있습니까?
은 "부여 Uri
권한"기능을 사용하면 타사에 의해 일반적으로 액세스 할 수없는 ContentProvider
을 가질 수 있습니다, 아직 선택적으로 예 (짧은 시간 동안 개별 타사 응용 프로그램에 대한 개별 Uri
값에 대한 액세스를 허용, 공급자가 제공하는 PDF를 볼 수있을 정도로 길다). 진실하고
android:grantUriPermissions="true"
거짓 부여 URI 권한 사이의 차이점을 무엇
는 Java 코드가
ContentProvider
에서 제공하는 모든Uri
에 대한FLAG_GRANT_READ_URI_PERMISSION
및FLAG_GRANT_WRITE_URI_PERMISSION
를 사용할 수 있음을 나타냅니다.
android:grantUriPermissions="false"
자식 의해 지정된 만Uri
값<grant-uri-permission>
요소FLAG_GRANT_READ_URI_PERMISSION
및FLAG_GRANT_WRITE_URI_PERMISSION
함께 사용될 수 있음을 나타낸다.
애플리케이션 캐시 디렉토리에있는 일부 파일을 우편으로 보내야한다고합니다.
다른 앱이 애플리케이션의 콘텐츠에 액세스 할 수 있도록 지정하지 않는 한 다른 앱이 해당 파일에 액세스 할 수 없습니다. 이를 위해 컨텐트 프로 바이더를 만들고, 모든 uri가 다음과 같은 형식의 컨텐트에 있다고 가정합니다 : //com.your.app/file 애플리케이션 캐시 디렉토리로 리다이렉트합니다.
일부 코드 :
File f = ...; // Some local file.
Uri uri = Uri.parse("content://com.your.app/" + f.getName());
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_SUBJECT, "Subject");
intent.putExtra(Intent.EXTRA_TEXT, "Body");
intent.putExtra(Intent.EXTRA_STREAM, uri);
// You only can add flag FLAG_GRANT_READ_URI_PERMISSION if your app has
// android:grantUriPermissions="true" in manifest or see quote below.
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
startActivity(Intent.createChooser(intent, "Send Email"));
CommonsWare 같이 말했다 :
안드로이드 : grantUriPermissions는 = "false"설정은 단지 열린 우리당이 가 > 요소 수있는 아이 < 보조금 URI-의 허가에 의해 지정된 값을 나타냅니다 FLAG_GRANT_READ_URI_PERMISSION 및 FLAG_GRANT_WRITE_URI_PERMISSION이 (가) 과 함께 사용됩니다.
나는 여전히 동일한 시점에 있으며, 우리가 사용해야 할 때, 왜 권한 부여 URI가 사용되는지 이해하지 못한다. 좀 더 자세하게 설명하고 주니어 개발자처럼 말해 줄 수 있습니까? – Android