Huawei Telefonlarda Share Engine ile Yüksek Hızda ve Güvenilir Dosya Transferi

Mustafa SARITEMUR
Huawei Developers - Türkiye
3 min readJan 26, 2021

Cihazlar arası dosya aktarım çözümü olan Huawei Share, Bluetooth kullanarak yakındaki cihazları keşfeder ve bağlantıları doğrular, ardından telefonlar, PC’ler ve diğer cihazlar arasında dosya aktarabilmek için uçtan uca kablosuz bağlantı kanalları oluşturur. Üçüncü taraf cihaz veya ortam uygunsa 80 Mbps’yi aşabilen stabil dosya aktarım hızları sunar. Share Engine ile geliştiriciler uygulamalarında Huawei Share özelliklerini kullanabilirler.

Huawei Share yetenekleri kompleks bir yapıya sahiptir ve bu yapı paketinin içerisinde gizlidir ancak geliştiricilerin uygulamalar ve akıllı cihazlara entegre etmesi için basitleştirilmiş şekilde sunulur. Bu yetenekleri uygulamalara entegre ederek, bilgisayarlar, yazıcılar, kameralar ve diğer cihazlar aralarında dosyalar kolayca paylaşılabilir.

Üç farklı SDK geliştirme paketi Android, Linux ve Windows tabanlı uygulamalar ve cihazlara hızlı entegrasyonu sağlamak için sunulur.

Çalışma İlkeleri

Huawei Share, Bluetooth kullanarak yakındaki cihazları keşfeder ve bağlantıları doğrular, ardından telefonlar, PC’ler ve diğer cihazlar arasında dosya aktarabilmek için uçtan uca kablosuz bağlantı kanalları oluşturur.

Kullanıcı deneyimini korumak için Huawei Share, dosya aktarımının her aşamasında güvenilir çekirdek teknolojileri kullanır.

· Cihazlar, çift yönlü cihaz keşif teknolojisi kullanılarak, pil ömrü veya güvenlikten ödün vermeden keşfedilir.

· Huawei tarafından geliştirilen şifre ile kimlik doğrulamalı anahtar değişimi (PAKE) teknolojisini kullanarak bağlantı kimlik doğrulaması.

· Huawei tarafından geliştirilen “channel capability negotiation and actual channel adjustment” birlikte yüksek hızlı uçtan uca iletim teknolojilerini kullanarak dosya aktarımı.

Daha fazla bilgi edinmek için bu link’i inceleyebilirsiniz.

Teorik kısmı bir kenara bırakıp kodlamaya başlayalım.

Gereksinimler

· Geliştirmek için gerekli olan Android Studio’nun V3.0.1 sürümü veya daha yükseği.

· Geliştireceğimiz Huawei telefon için EMUI 10.0 veya daha yükseği ve Android API seviyesinin 26 veya daha yüksek olması.

Geliştirme

1 - Öncelikle AndroidManifest.xml dosyasına aşağıdaki izni ekliyoruz. Böylelikle uygulamamız ile telefonumuzdaki dosyalara erişim izni talep edebiliriz.

2 - Bunun ardından activity_main.xml dosyasını aşağıdaki gibi şekillendiriyoruz. Böylelikle arayüzde Share Engine’in özelliklerini kullanmamızı sağlayacak bir tane girdi alabileceğimiz EditText ve üç tane Button oluşturmuş oluruz.

3 - strings.xml dosyasına aşağıdakileri ekleyerek Button yazıları ve uyarıları oluşturmuş oluruz.

4 - Daha sonra MainActivity.java sınıfını şekillendirelim. Öncelikle telefondaki dosyalara erişim sağlamak için onResume metodunda kullanıcıdan izin talebinde bulunalım.

5 - Kullanacağımız değişkelere ilk değer atamasını yapalım ve bu fonksiyonu onCreate metodunda çağıralım.

6 - Tekrar tekrar aynı yapıya sahip Intent oluşturacağımız için bunu basitçe bir fonksiyon oluşturarak tekrarlanan kodlardan kurtulmuş olalım.

Share Engine kullanarak Huawei telefonlar arasında dosya transferi yapmak için SDK’ya ihtiyaç duymuyoruz bunun yerine yukarıda gördüğünüz Intent’e “com.huawei.android.instantshare” paket adını vererek kolayca dosya transferini sağlayabiliriz.

7 - Share Engine ile metin gönderebilmek için sendTextButton’un onClick metodunu oluşturalım.

8 - Share Engine ile dosya gönderebilmek için dosya yöneticisi üzerinden seçeceğimiz dosya/dosyaları elde edebilmek için onActivityResult metodunu düzenleyelim.

Metodun sonunda çağrılan handleSendFile metodu ile tekil veya çoğul dosya gönderim işlemini gerçekleştirmiş olacağız.

9 - Son olarakda dosya gönderim tuşlarının onClick metodlarını düzenleyelim.

Oluşturmamız gereken tüm yapıları hazırladık şimdi çıktılarını inceleyelim.

Metin paylaşmak:

Dosya paylaşmak:

Birden fazla dosya paylaşmak:

Sonuç

Bu makaleyle birlikte Huawei telefonlar arasında Share Engine kullanarak dosyalar ve metin paylaşmayı öğrenmiş olduk.

Daha fazla bilgi almak için:

Teşekkürler..

--

--