Sayfalar

Tanınmayan Android Cihazlarla Uygulama Geliştirmek

Bir süre önce aldığım PolyPad 8708 IPS üzerinde birkaç uygulama denemesi yapmak istedim. Zorlandığımı belirtmem gerekiyor. İsterseniz hangi sorunlar ile karşılaştığıma ve bunlara karşı ürettiğim çözümlere bakalım.

Tabletin ayarlar kısmından geliştirici seçeneklerini aktif hale getirdim. Sonra USB hata ayıklamayı etkinleştirdim.

Tableti bilgisayara bağladım fakat Windows 7 64 bit işletim sistemim gerekli sürücüyü yükleyemedi. Bu karşılaştığım ilk hataydı. İlk işim %AndroidSDK%\extras\google\usb_driver klasöründeki android_winusb.inf dosyasına Windows'un bana bildirdiği aygıt kimliğini girmek oldu. Aygıt kimliğine ulaşmak için donanım yöneticisinden ünlem işaretli 8708 IPS girdisini çift tıklatıp Ayrıntılar sekmesine girdim. Sekmedeki çoklu seçim kısmından da Donanım Kimlikleri'ni seçtikten sonra aşağıdaki görüntü ile karşılaştım (Şekil 1, Penceredeki başlık sizi yanıltmasın, sürücü doğru şekilde kurulduktan sonra görüntüyü aldığımdan ileri gelmekte).


windows donanım kimliği
Şekil 1. Windows'ta donanım kimliğine ulaşma

Elime donanım kimliği de geçince sözü edilen inf dosyasında gerekli eklemeleri yaptım. Uzun uzadıya anlatmamak için tüm dosyanın içeriğini Kod 1'de görebilirsiniz.

Kod 1. android_winusb.inf dosyasının içeriği

Windows'a değiştirdiğim inf dosyasını gösterince (ve bu sürücüyü yükleyeyim mi sorusunu onaylayınca) her şeyin hallolacağını sanıyordum. Yanılmış olsam bu yazıcıyı yazmayacağımdan emin olabilirsiniz.

Hemen sonra karşılaştığım sorun adb'nin (Android Debug Bridge, sürüm 1.0.31)  tabletimi tanıyamamasıydı. kill-server ve takip eden start-server komutları zaman kaybından başka bir şey değildi. devices parametresi ile bağlı cihazları listele dediğimde boş çıktı ile karşılaşmaya devam ediyordum. %userprofile%\.android klasöründeki adbkey ve adbkey.pub dosyalarını silmem de ilerleme kaydetmemi sağlayamadı. http://developer.android.com/tools/device.html#VendorIds bağlantısında da görebileceğiniz üzere 10d6 (donanım kimliğinde karşılaştığımız üretici kodu) Google'ın yayınladığı listede yoktu. Sorunun kaynağının bu olduğuna kanaat getirip, araştırmalarımı bu yönde genişlettim. Çözümün %userprofile%\.android klasöründeki adb_usb.ini dosyasına, tablet üreticimin kodunu girmem olduğunu öğrenince sözü edilen dosyayı on altılık düzenleyici ile açıp (notepad++ ve hex-editör eklentisi), "0x10d6" değerini ekledim. Burada sizin de dikkat etmeniz gereken nokta her satırın sonunda \r\n değil sadece \r bulunması (başka bir ifadeyle on altılık düzenleyicide 0d 0a yerine sadece 0a değeri bulunmalı). Bununla ilgili ekran görüntüsü Şekil 2'de.


adb_usb.ini
Şekil 2. adb_usb.ini dosyasının metin ve on altılık düzenleyicilerdeki görüntüsü.

Tüm bu işlemlerden sonra adb devices komutuyla bağlı olan tabletimin adb tarafından da tanındığına emin oldum. Yalnız adb'deki bir hata yüzünden olduğu söylenen cihazın gerçek seri numarası yerine 0123456789ABCDEF... görüntülenmesi sorunu ile de karşılaştığımı belirtmeliyim. Sonraki işlem Eclipse'de bir "merhaba dünya" uygulaması oluşturup, tablet üzerinde hata ayıklamak oldu. Başarıya ulaştığımı düşünmeme rağmen kafamı kurcalayan soru eğer birden fazla tanınmayan cihazı aynı anda bilgisayara bağlarsam ne olacağı. Şu durumda iki cihazı seri numaraları ile ayırt etmek imkansız gibi. 

Nihayetinde Google tarafından listeye alınan Sony Ericsson Xperia telefonumda bu işlemlerin hiçbirisine gerek kalmadığını belirteyim.


Yararlandığım kaynaklar: