2016-03-19 25 views
0

Yerel bir Android uygulamasında Salesforce SDK'sını (4.1.x) kullanıyorum. Form verilerimi özel bir nesneye göndermek için RestClient.sendAsync yöntemini kullanıyorum. Bu bölüm iyi çalışıyor. Artık mobil kullanıcı tarafından çekilmiş bir fotoğrafı yüklemem ve eklemem gerekiyor. RestClient'in bir uploadFile yöntemine sahip olduğunu görüyorum. Bu doğru yöntem mi? Öyleyse yüklenen dosyayı özel form verilerine nasıl bağlarım?Android için Salesforce Mobile SDK'yı kullanarak nasıl dosya yüklerim?

cevap

1

Tamam. Bunu anladım. İlk olarak, aşağıdakileri kullanarak ana nesneyi (ana form verileri) oluşturun.

request = RestRequest.getRequestForCreate(apiVersion, objectType, fields); 
client.sendAsync(restRequest, new RestClient.AsyncRequestCallback() {... 

OnSuccess yönteminde, yanıtın yeni nesnesinin kimliğini alırsınız. JSON nesnesini ve kimliğini nasıl alacağınızı gösteren birçok örnek vardır. Bu parentId ile donatılmış olan eki şimdi oluşturabiliriz. Kod böyle bir şey görünüyor. Sadece görüntü dosyasını yükleyen basit bir sınıf olarak adlandırılan ImageHelper, kullanıyorum

private void postImageAsAttachment(String parentId, String title) { 
    Map<String, Object> fields = new HashMap<String, Object>(); 
    fields.put("Name", title); 
    fields.put("ParentId", parentId); 
    fields.put("Body", ImageHelper.getBase64FromImage(mCurrentPhotoPath)); 

    RestRequest request = null; 
    try { 
     request = RestRequest.getRequestForCreate(apiVersion, "Attachment", fields); 
    } catch (Exception ex) { 
     Log.d(TAG, "sendRequest: ", ex); 
     Toast.makeText(MainActivity.this, "The file upload failed: " + ex.toString(), Toast.LENGTH_LONG).show(); 
    } 
    client.sendAsync(request, new RestClient.AsyncRequestCallback() {... 

görüntü sıkıştırma (gerekirse) gerçekleştirir ve base64 görüntü verilerini kodlar. Sonuç, ana nesnenin bir alt öğesi olarak bir "Ek" nesnesi oluşturulur.

Umarım bu bir sonraki kişiye yardımcı olur.

+0

Lütfen tam kodu bana verebilir misiniz? – kgandroid

+0

BasicNetwork.performRequest'in verilmesi: Beklenmeyen yanıt kodu 400 için https://ap2.salesforce.com/services/data/v36.0/sobjects/Attachment – kgandroid

+0

Bunu daha sonra bugün kazacağım. Bu arada, SF'deki nesnenin bir eke izin verdiğinden emin olun. İlk başta bir hatayla karşılaşıyordum çünkü bizim nesnemiz bir eke izin verecek şekilde ayarlanmamıştı. Kullanıcılar ayrıca, nesne/varlık için uygun haklara sahip olmadıkları takdirde hatalar da aldılar. –

İlgili konular