- Siêu lớp và danh mục iOS/Objective-C
- object-c - -1001 lỗi khi NSURLSession vượt qua httpproxy và /etc/hosts
- java - Nhận địa chỉ url bằng lớp mạng
- ios - Âm thanh không phát trong thông báo đẩy
Tôi đang sử dụng FileProvider để chụp ảnh trên Android Nougat, đây là mã của tôi
android:name="android.support.v4.content.FileProvider"
android:authorities="com.mypackage.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
Đường dẫn tệp.xml:
<đường dẫn="">
đường>
Java:
Chuỗi fileName = "máy ảnhOutput" + System.currentTimeMillis() + ".jpg";
Tệp imagePath = Tệp mới(getContext().getFilesDir(), "hình ảnh");
Tệp tệp = Tệp mới (imagePath, fileName);
Ý định cameraIntent = Ý định mới(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
đầu ra Uri cuối cùngUri = FileProvider.getUriForFile(activity, "com.mypackage.fileprovider", file);
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, outUri);
getContext().grantUriPermission(
"com.google.android.GoogleCamera",
đầu raUri,
Ý định.FLAG_GRANT_WRITE_URI_PERMISSION | Ý định.FLAG_GRANT_READ_URI_PERMISSION
);
cameraIntent.setFlags(FLAG_GRANT_WRITE_URI_PERMISSION);
hoạt động.startActivityForResult (máy ảnhIntent, ACTIVITY_REQUEST_CODE);
Hoạt động của máy ảnh bắt đầu và ảnh được chụp thành công nhưng kết quả Hoạt động không bình thường và điều duy nhất tôi thấy trong nhật ký lỗi là
CAM_StateSavePic: Đã xảy ra ngoại lệ khi lưu kết quả vào URI: Tùy chọn.of(content://com.mypackage.fileprovider/img/máy ảnhOutput1469383289530.jpg)FileNotFoundException: là một thư mục
biên tậpTệp bị thiếu#createNewFile();
câu trả lời hay nhất
Điều chính giúp URI máy ảnh và thư viện hoạt động bình thường là đường dẫn nhà cung cấp.
Bạn cần tạo một Provider_paths.xml vào thư mục /res/xml/
<đường dẫn="" xmlns:android="http://schemas.android.com/apk/res/android">
đường>
Trong tập tin danh sách của bạn, trong
Thêm dòng này vào giữa
android:name="android.support.v4.content.FileProvider"
android:authorities="${applicationId}.provider"
android:exported="false"
android:grantUriPermissions="true">
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/provider_paths">
Còn một điều nữa mình thấy là chúng ta cần set vmPolicy trong class Application như thế này
@Ghi đè
khoảng trống công khai trênCreate() {
super.onCreate();
// Cho phép chính sách Chế độ nghiêm ngặt để hỗ trợ Nougat
Trình tạo StrictMode.VmPolicy.Builder = new StrictMode.VmPolicy.Builder();
StrictMode.setVmPolicy(builder.build());
}
Kiểm tra kỹ máy ảnh và quyền lưu trữ bên ngoài của bạn trong tệp danh sách và sau đó bạn có thể sử dụng URI kẹo dẻo.
Để biết thêm chi tiết hãy xem liên kết này:Tệp Android NUriExposeException
Về việc sử dụng FileProvider để chụp ảnh trên Android, chúng tôi tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/38555301/
Tôi có đoạn mã sau, nó chỉ hoạt động trên Android 7 trở xuống. Android 8 chỉ hiển thị một tệp trống, tôi mở pdf theo cách thủ công và nó hoạt động tốt. Tôi có đoạn mã sau, đây là repo: tĩnh riêng tư
fileProvider dường như không lưu hình ảnh của tôi vào bộ nhớ ngoài. Khi tôi vào tập tin của mình, nó sẽ tạo thư mục chứ không phải tập tin. Tôi còn khá mới với việc viết mã Android, vì vậy hãy tha thứ cho sự thiếu hiểu biết của tôi. Nhà cung cấp tập tin nằm ở
Trong ứng dụng Android của tôi, tôi cần hiển thị một số tệp từ FileProvider. Không cần mã hóa, việc này rất đơn giản: Tôi chỉ cần thêm FileProvider vào tệp kê khai.xml.
Tôi có một ứng dụng nơi tôi chụp ảnh và đặt nó vào ImageView rồi tải nó lên máy chủ. Tuy nhiên, bất cứ khi nào tôi chụp ảnh, hình ảnh không hiển thị và khi tôi cố gắng tải hình ảnh lên, tôi nhận được FileNotFoundExceptio
Tôi có FileProvider hoạt động tốt và tôi có thể chia sẻ tệp với bất kỳ ứng dụng nào, đây là mã của tôi: FilePath.xml: Set Sharing Intent: File f = new
Tôi muốn sử dụng FileProvider để truy cập các tệp trong MyFirstApplication MySecondApplication được lưu trữ trong thư mục nội bộ. Tôi đã đọc tài liệu và ví dụ về FileProvider.
Tôi đang cố gắng thực hiện hướng dẫn này. Tôi đã làm theo tất cả các bước nhưng tôi không thể xây dựng Trình cung cấp tệp lớp chưa được giải quyết do có lỗi cho biết tôi đã cài đặt kho lưu trữ hỗ trợ. Điểm hiện tại của tôi như sau: ứng tuyển
Tôi hiểu tại sao FileProvider lại hữu ích khi chia sẻ các tệp riêng tư của ứng dụng (tệp trong bộ nhớ trong của ứng dụng) với một ứng dụng khác trong khi kiểm soát quyền. Tài liệu giải thích cách sử dụng nó để chia sẻ tệp từ bộ nhớ ngoài (thẻ SD, v.v.)
Tôi mới làm quen với lập trình Android và đã làm theo một số hướng dẫn khác nhau. Mục đích là sao chép tệp pdf từ thư mục Nội dung sang bộ nhớ ngoài, sau đó mở Ý định khi nhấn nút để mở trình xem PDF. Tôi đã thử sử dụng FilePro
Tôi đang thử kiểm tra hướng dẫn FileProvider. Nó yêu cầu trong danh sách: Trong danh sách tôi gặp lỗi: Không thể giải quyết biểu tượng FileProvider.
Làm cách nào để sử dụng FileProvider để phân phát tệp từ bộ nhớ ngoài thứ cấp? ? Việc triển khai FileProvider hiện tại chỉ xử lý thư mục đầu tiên được trả về bởi ContextCompat.getExternalFilesDirs
Đối với các tệp trong thư mục Bộ đệm, tôi có thể thêm tệp này vào xml để đặt FileProvider nhưng nếu tôi lưu tệp trong thư mục bộ đệm bên ngoài thì tôi không thể lấy thẻ đường dẫn bộ đệm bên ngoài hoặc bất cứ thứ gì tương tự để đặt FilePro
Tôi có FileProvider sau trong danh sách của mình: Tôi gặp phải ngoại lệ sau khi ứng dụng khởi động: java.lang.RuntimeException: Không thể
Tôi không thể mở bất kỳ tập tin nào trong thư mục tải xuống. Tôi có thể tải xuống một tệp và lưu nó vào thư mục tải xuống: DownloadManager.Request request = new DownloadManager.Requ
Tôi tò mò về vòng đời của quyền khi sử dụng android.support.v4.content.FileProvider. Tài liệu dành cho FileProvider cho biết: Đặt android:grantUri
Tôi đang cố gắng để Ứng dụng máy ảnh lưu trữ kết quả đầu ra vào bộ nhớ trong của mình. Tôi cũng hiểu rằng các ứng dụng của bên thứ 3 không thể truy cập bộ nhớ trong của ứng dụng của tôi nhưng chúng tôi có thể làm điều đó bằng cách hiển thị thư mục nội bộ thông qua FileProvider. Tôi đã theo dõi ở đây
API nhắm mục tiêu nền 24 trở lên, thay vì sử dụng lệnh "Uri.fromFile" đơn giản, nhà phát triển cần sử dụng FileProvider (hoặc ContentProvider của riêng họ) để cho phép các ứng dụng khác
A đang phát triển một dự án Android. Tôi cần cung cấp ContentProvider để cung cấp quyền truy cập vào một số thư mục. FileProvider Đây là một giải pháp tốt cho tôi. Có thể sử dụng FileProvi
Câu hỏi này đã có câu trả lời: Từ chối cấp phép với Nhà cung cấp tệp thông qua ý định (4 câu trả lời) đã bị đóng vào năm ngoái. Tôi đang cố gắng chia sẻ nó với FileProvider
Tôi đã tạo một ứng dụng tạo tệp *.csv bên trong một thư mục (được tạo bởi cùng một ứng dụng) trong khi tệp nằm trong thư mục tải xuống trên Android. Tệp có thể được chia sẻ qua ShareIntent, vấn đề là khi
Tôi là một lập trình viên xuất sắc, rất giỏi!