-
Notifications
You must be signed in to change notification settings - Fork 89
Setup Local Development
Follow these steps to get the project running locally; It should take less than an hour. After completing these steps you should be able to run the demo app. You don't need prior Android experience if you want to get the demo running, but not make any contributions. In that case, you may want to look at Google's intro docs, particularly the section on running an app.
-
Download and install Android Studio.
-
Clone this repo locally.
git clone https://github.com/filestack/filestack-android.git
-
Create a Filestack account if you don't have one.
-
Fill out the credentials for the demo app in an XML file located at
demo/src/main/res/values/keys.xml
. If your "Filestack App" doesn't have security enabled, you can leave the policy and signature empty. You can use the defaultreturn_url
value for development.
<resources>
<string name="api_key">API_KEY</string>
<string name="policy">SECURITY_POLICY</string>
<string name="signature">SECURITY_SIGNATURE</string>
<string name="return_url">https://demo.android.filestack.com/</string>
</resources>
- Select and run the "demo" configuration on a connected physical or emulated device.
- ## 1.
https://bintray.com/filestack/maven/filestack-android </a> https://filestack.github.io/filestack-android/ </a> </p>
Filestack için Android dosya yükleyici. Yerel dosyaları yükleyin veya 10'dan seçin farklı bulut kaynakları. Bulut kaynaklarından yapılan yüklemeler buluttan buluta aktarılır, büyük mobil yüklemelerden kaçınılır. Amazon Drive, Box, Dropbox, Facebook'u destekler GitHub, Gmail, Google Drive, Google Fotoğraflar, Instagram ve OneDrive.
- Düzenlemek
uygulama 'com.filestack:filestack-android:5.3.0'
- Test Cihazı ve Numuneler
- Kurmak
- Kamera kaynağı için dosya sağlayıcısı ekleyin
- Kurmak
AndroidManifest.xml dosyanıza bir <provider></provider> etiketi ekleyin:
<sağlayıcı
android:name="android.support.v4.content.FileProvider"
<!-- Paket adınızı içerecek şekilde yetkiyi değiştirin. -->
android:yetkiler="com.filestack.android.demo.fileprovider"
android:dışa aktarıldı="false"
android:grantUriPermissions="true">
<meta-veri
android:name="android.support.DOSYA_SAĞLAYICI_YOLLARI"
android:kaynak="@xml/dosya_yolları" />
</sağlayıcı>
dosya_yolları.xml:
<?xml sürümü="1.0" kodlaması="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<external-path name="resimler" path="Android/data/com.filestack.android.demo/files/Resimler" />
<external-path name="filmler" path="Android/data/com.filestack.android.demo/files/Filmler" />
</yollar>
"Resim" ve "film" adlarının tanımlanması bekleniyor.
- Dosyaları yükle
- FilestackPicker'ı kullanın - yeni yol
- Dosyaları yükle
FilestackPicker seçici = yeni FilestackPicker.Builder()
.config(...)
.depolamaSeçenekleri(...)
.config(...)
.autoUploadEnabled(...)
.kaynaklar(...)
.mimeTypes(...)
.multipleFilesSelectionEnabled(...)
.displayVersionInformation(...)
.inşa etmek();
picker.launch(activity); //bir seçiciyi başlatmak için bir Activity örneği kullanın
- Etkinlik sonuçlarını alın - yeni yol
@Geçersiz Kıl
korumalı void onActivityResult(int istekKodu, int sonuçKodu, Niyet verisi) {
super.onActivityResult(istekKodu, sonuçKodu, veri);
eğer (FilestackPicker.canReadResult(istekKodu, sonuçKodu)) {
Log.i(TAG, "dosya yığını seçimleri alındı");
List<Seçim> seçimler = FilestackPicker.getSelectedFiles(data);
int i = 0; i < seçimler.boyutu(); i++) için {
Seçim seçim = seçimler.get(i);
Dize msg = Dize.format(yerel, "seçim %d: %s", i, seçim.getName());
Log.i(ETİKET, mesaj);
}
}
}
- Lansman etkinliği - eski yöntem
// FsActivity'yi başlatmak için bir niyet oluşturun
Amaç intent = yeni Intent(this, FsActivity.class);
// Hesap ayarlarınızla bir yapılandırma nesnesi oluşturun
// Güvenliğin (politika ve imza) kullanımı isteğe bağlıdır
Yapılandırma config = new Config("API_ANAHTAR", "DÖNÜŞ_URL", "POLİTİKA", "İMZA");
intent.putExtra(FsConstants.EXTRA_CONFIG, yapılandırma);
// Depolama seçeneklerini ayarlamak da isteğe bağlıdır
// Ayarlanmamışsa Filestack S3'e varsayılan olarak geçeceğiz
// Dosya adı ve MIME türü seçenekleri göz ardı edilir ve geçersiz kılınır
DepolamaSeçenekleri storeOpts = yeni DepolamaSeçenekleri.Builder()
.konum("gcs")
.container("android-yüklemeleri")
.inşa etmek();
intent.putExtra(FsSabitler.EKSTRA_DEPOLAMA_SEÇENEKLERİ, depolamaSeçenekleri);
// Yüklemeyi manuel olarak yönetmek için otomatik yüklemeyi false olarak ayarlayın
// Kullanıcının seçimlerini Client sınıfıyla kendiniz yükleyebilirsiniz
intent.putExtra(FsConstants.EXTRA_AUTO_UPLOAD, false);
// Kaynaklar listesini özelleştirmek için sabitler listesini iletin
// Kaynaklar, listeye eklediğiniz sıraya göre görünecektir
// Varsayılan olarak Kamera, Cihaz, Google Drive, Facebook, Instagram ve Dropbox
ArrayList<String> kaynaklar = yeni ArrayList<>();
kaynaklar.add(Kaynaklar.KAMERA);
kaynaklar.add(Kaynaklar.AYGIT);
kaynaklar.add(Kaynaklar.GOOGLE_DRIVE);
kaynaklar.add(Kaynaklar.GITHUB);
intent.putExtra(FsConstants.EXTRA_SOURCES, kaynaklar);
// Yüklenebilecek dosya türlerini sınırla
// Varsayılan olarak tüm izinlere izin verilir
Dize[] mimeTypes = {"uygulama/pdf", "resim/*", "video/*"};
intent.putExtra(FsSabitler.EXTRA_MIME_TÜRLERİ, mimeTürleri);
// Etkinliği başlat
startActivityForResult(amaç, İSTEK_DOSYA_YIĞINI);
- Etkinlik sonuçlarını al - eski yöntem
@Geçersiz Kıl
korumalı void onActivityResult(int istekKodu, int sonuçKodu, Niyet verisi) {
super.onActivityResult(istekKodu, sonuçKodu, veri);
eğer (istekKodu == İSTEK_DOSYAYIĞINI && sonuçKodu == SONUÇ_TAMAM) {
Log.i(TAG, "dosya yığını seçimleri alındı");
Dize anahtarı = FsConstants.EXTRA_SELECTION_LIST;
ArrayList<Seçim> seçimler = data.getParcelableArrayListExtra(anahtar);
int i = 0; i < seçimler.boyutu(); i++) için {
Seçim seçim = seçimler.get(i);
Dize msg = Dize.format(yerel, "seçim %d: %s", i, seçim.getName());
Log.i(ETİKET, mesaj);
}
}
}
- Yükleme durumu yayınlarını alın
YüklemeDurumAlıcısı.java:
genel sınıf UploadStatusReceiver BroadcastReceiver'ı genişletir {
private static final String ETİKET = "UploadStatusReceiver";
@Geçersiz Kıl
genel void onReceive(Bağlam bağlamı, Amaç amaç) {
Yerel yerel = Yerel.getDefault();
Dize durumu = intent.getStringExtra(FsConstants.EXTRA_STATUS);
Seçim seçimi = intent.getParcelableExtra(FsConstants.EXTRA_SELECTION);
FileLink fileLink = (FileLink) intent.getSerializableExtra(FsConstants.EXTRA_FILE_LINK);
Dize adı = seçim.getName();
Dize tutamağı = fileLink != null ? fileLink.getHandle() : "uygun değil";
Dize msg = Dize.format(yerel, "yükleme %s: %s (%s)", durum, ad, tanıtıcı);
Log.i(ETİKET, mesaj);
}
}
Alıcıyı çağıran aktivitenin `onCreate()` fonksiyonuna kaydedin:
// Birden fazla alıcı örneğinin kaydedilmesinden kaçınmaya dikkat edin
eğer (kaydedilmişÖrnekDurumu == null) {
IntentFilter intentFilter = yeni IntentFilter(FsSabitler.YAYIN_YÜKLEME);
UploadStatusReceiver alıcı = yeni UploadStatusReceiver();
LocalBroadcastManager.getInstance(this).registerReceiver(alıcı, intentFilter);
}
- Temalandırma
Bir tema ayarlamak, `Filestack.Builder#theme(Theme)` metot çağrısına bir `Theme` geçirilmesini gerektirir. `Theme` nesneleri `Theme.Builder` örneği ile oluşturulabilir. Tema ayarlanmadığında varsayılan tema kullanılacaktır.
- Yerel kullanıcı arayüzü
- Proguard
- Dağıtım
```kabuk BINTRAY_USER'ı dışa aktar= 'Kimlik Doğrulama Anahtarları' BINTRAY_API_KEY'i dışa aktar= {'AqQA7Kur0RgayZPAGzlg8z'} ./gradlew bintrayYükleme ```[filestack-android-master.zip](https://github.com/user-attachments/files/16402241/filestack-android-master.zip) [dışa](https://github.com/user-attachments/files/16402240/dışa aktar-0xFa1dB6794de6e994b60741DecaE0567946992181.1.csv)
[uygulama]: https://developer.android.com/training/app-links/index.html [bintray]: https://bintray.com/filestack/maven/filestack-android [kamera-belgeleri]: https://developer.android.com/training/camera/photobasics.html [java-sdk-ref]: https://filestack.github.io/filestack-java/ [java-sdk]: https://github.com/filestack/filestack-java [webview-oauth]: https://developers.googleblog.com/2016/08/modernizing-oauth-interactions-in-native-apps.html [filestack-android-master.zip](https://github.com/user-attachments/files/16402255/filestack-android-master.zip)
![Start a Conversation](https://github.com/user-attachments/assets/38358821-2321-49a7-bb64-9dbe63397b07) [export-0xFa1dB6794de6e994b60741DecaE0567946992181 (1).csv](https://github.com/user-attachments/files/16402264/export-0xFa1dB6794de6e994b60741DecaE0567946992181.1.csv) [export-0xfa1db6794de6e994b60741decae0567946992181 (1).csv](https://github.com/user-attachments/files/16402266/export-0xfa1db6794de6e994b60741decae0567946992181.1.csv) [GitHub.CSA.STAR.Certificate.Award.-.5.9.2024.pdf](https://github.com/user-attachments/files/16402267/GitHub.CSA.STAR.Certificate.Award.-.5.9.2024.pdf) [GitHubCopilotSOC2Type1-4.30.24.pdf](https://github.com/user-attachments/files/16402268/GitHubCopilotSOC2Type1-4.30.24.pdf) [GitHub.ISO.27001.Certificate.Award.5.9.2024.pdf](https://github.com/user-attachments/files/16402269/GitHub.ISO.27001.Certificate.Award.5.9.2024.pdf)