Szukałem i czytałem pliki dla programistów Androida, ale nie znalazłem satysfakcjonującej odpowiedzi na udzielenie zgody dostawcy treści. Czy ktokolwiek może wyjaśnić bardziej szczegółowe i prostsze. Moje pytania są następujące: Jaką dotację stosuje uri? Jakie są różnice między uprawnieniami uri true a false Kiedy powinniśmy używać true? kiedy jest fałszywy? i wszelkie inne szczegóły są mile widziane.Dostawca treści uri zezwolił
Odpowiedz
Jaką dotację wykorzystujesz?
„Udzielenie Uri
uprawnienia” pozwala mieć ContentProvider
który jest zwykle niedostępne dla osób trzecich, ale selektywnie umożliwiać dostęp do poszczególnych Uri
wartości do poszczególnych aplikacji firm trzecich na krótki okres czasu (na przykład, wystarczająco długo, aby wyświetlić plik PDF obsługiwany przez dostawcę).
Jakie są różnice między pozwoleniem grant uri true i false
android:grantUriPermissions="true"
wskazuje, że kod Java mogą korzystać FLAG_GRANT_READ_URI_PERMISSION
i FLAG_GRANT_WRITE_URI_PERMISSION
dla każdego Uri
obsługiwanym przez tego ContentProvider
.
android:grantUriPermissions="false"
wskazuje, że tylko wartości Uri
określone przez dzieci <grant-uri-permission>
elementy mogą być używane z FLAG_GRANT_READ_URI_PERMISSION
i FLAG_GRANT_WRITE_URI_PERMISSION
.
Powiedz, że musisz wysłać plik znajdujący się w katalogu pamięci podręcznej aplikacji.
Żadne inne aplikacje nie mają dostępu do tego pliku, chyba że użytkownik określi, że inne aplikacje mogą uzyskać dostęp do zawartości aplikacji. W tym celu należy utworzyć dostawcę zawartości i powiedzieć, że wszystkie pliki URI są w formie: //com.twoj.app/file "przekieruj" do katalogu pamięci podręcznej aplikacji.
Niektóre kodu:
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"));
Jak CommonsWare powiedział:
android: grantUriPermissions = "false" wskazuje, że tylko wartości URI określony przez dziecko < grant-uri-zgody > elementy mogą używać z FLAG_GRANT_READ_URI_PERMISSION i FLAG_GRANT_WRITE_URI_PERMISSION.
Wciąż jestem w tym samym punkcie i nie rozumiem, dlaczego uri używa, kiedy powinniśmy go używać. Czy możesz wyjaśnić bardziej szczegółowo i powiedzieć mi, jak młodszy deweloper. – Android