2013-02-21 30 views
27

Instagram dành cho Android rất hạn chế, từ những gì tôi đã thấy cho đến thời điểm này. kịch bản của tôi rất đơn giản: cho phép người dùng chỉnh sửa một bức tranh và khi ông nhấp chuột vào Gửi:Instagram từ Android mở trên người dùng nhất định và thêm chú thích cho hình ảnh được tải lên

Intent share = new Intent(Intent.ACTION_SEND); 
share.setType("image/jpeg"); 

Sau đó, với queryIntentActivities() tôi tìm kiếm để xem nếu Instagram được cài đặt. Nếu đó là tôi gửi con đường của hình ảnh của tôi để được tải lên:

share.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:///" + path to myfile.png")); 
share.setClassName(resolveInfo.activityInfo.packageName, resolveInfo.activityInfo.name); 
share.putExtra(Intent.EXTRA_SUBJECT, "Sample subject"); 
share.putExtra(Intent.EXTRA_TEXT, "Sample text"); 
share.putExtra(Intent.EXTRA_TITLE, "Sample title"); 

Kết quả: hình ảnh được tải lên sử dụng Instagram ứng dụng (tất nhiên nếu tôi đăng nhập), nhưng tôi không thể thêm một Chú thích nó. Không ai trong số putExtra có bất kỳ ảnh hưởng nào. Vì vậy, có cách nào để thêm một chú thích như tham số ý định?

Và câu hỏi khác, có thể mở ứng dụng Instagram bằng tên người dùng nhất định được điền không?

+0

Xin chào @Alin bạn đã tìm thấy giải pháp cho vấn đề phụ đề chưa? – Abdullah

+0

Hãy thử http://stackoverflow.com/a/14954551/926598 – mattlaabs

+3

Instagram này sẽ cần phải làm cho chức năng này khả dụng và công khai. –

Trả lời

8

Dường như ứng dụng Android của Instagram bỏ qua EXTRA_TEXT, EXTRA_SUBJECT và EXTRA_TITLE, do đó có vẻ như thêm chú thích trong khi tải lên hình ảnh là không thể. Nhân tiện, bạn có thể thử các cách tiếp cận khác nhau để kiểm tra xem nó có bỏ qua những tính năng bổ sung đó trong mọi trường hợp:

TÙY CHỌN # 1: Thay đổi loại MIME.

Bạn đang đặt loại MIME thành "image/jpeg". Hãy thử sử dụng "image/" hoặc "/*" để kiểm tra xem ứng dụng của họ có bỏ qua những tính năng bổ sung đó hay không.

share.setType("image/*"); 

hoặc

share.setType("*/*"); 

OPTION # 2:

Như bạn đang gửi nhiều loại MIME (hình ảnh và văn bản), có lẽ ứng dụng của họ được mong đợi ACTION_SEND_MULTIPLE thay vì ACTION_SEND.

Intent share = new Intent(Intent.ACTION_SEND_MULTIPLE); 

OPTION # 3: Sử dụng MediaStore.Images.Media.insertImage(ContentResolver cr, String imagePath, String name, String description) chức năng:

Intent share = new Intent(Intent.ACTION_SEND); 
share.putExtra(Intent.EXTRA_STREAM, Uri.parse(MediaStore.Images.Media.insertImage(getContentResolver(), "file:///" + path to myfile.png", "Sample title", "Sample description"))); 
share.setType("image/jpeg"); 
share.setClassName(resolveInfo.activityInfo.packageName, resolveInfo.activityInfo.name); 

OPTION # 4: Đăng vấn đề của bạn trong developer forum của họ, mặc dù có những câu hỏi tương tự mà vẫn chưa được giải quyết:

Và đừng quên quay lại và cho chúng tôi biết câu trả lời của họ!

+0

Vì không có bất kỳ câu trả lời nào cho câu trả lời này: - Loại thiết lập thành \ */\ * gửi cho tôi thẳng tới nguồn cấp tin tức - Có vẻ như là một số cách để tải hình ảnh lên ứng dụng Instagram, nhưng không cách bao gồm chú thích. Vui lòng sửa tôi nếu tôi sai và vui lòng đăng bất kỳ giải pháp nào để đưa vào phụ đề. – kentrh

4

Có vẻ như Instagram đã cập nhật ứng dụng của họ để chấp nhận EXTRA_TEXT để thêm chú thích. Nếu người dùng có một phiên bản cập nhật của Instagram (ngày 1 tháng 7 năm 2014 phiên bản hoặc mới hơn), bạn có thể gửi hình ảnh và thêm một chú thích với đoạn mã sau:

Intent instagram = new Intent(android.content.Intent.ACTION_SEND); 
instagram.setType("image/*"); 
instagram.putExtra(Intent.EXTRA_STREAM, [URI of photo]); 
instagram.putExtra(Intent.EXTRA_TEXT, [Text of caption]); 
instagram.setPackage(instagramPackageName); 
startActivity(instagram); 

Người sử dụng với phiên bản cũ vẫn sẽ nhận được hình ảnh, nhưng không có chú thích được điền trước.

Mã này giả định rằng bạn đã trải qua luồng xác thực.

+0

Cảm ơn bạn đã chia sẻ điều này, thật tuyệt khi họ cuối cùng đã thêm tùy chọn này. – Alin

+1

Dường như họ đã xóa tùy chọn này ... – Alin

+3

Tôi có thể xác nhận rằng họ xóa tùy chọn để đặt chú thích vào một thời điểm nào đó, tuần trước. EXTRA_TEXT biến mất khỏi tài liệu: https://instagram.com/developer/mobile-sharing/android-intents/ – Leito

Các vấn đề liên quan