Mustafa Ferhan Akman

Türkiye için Android Hava Durumu Programı

Posted in Android, Programlama by ferhanakman on 09/02/2010

kGlz.com sitesinin sahibi Kadir Gülağız, Türkiye için android hava durumu uygulaması hazırlamış. Android Marketteki Türk programcıların ve Türkçe uygulamaların sayısının oldukça az olduğu düşünüldüğünde, bu hoş bir haber oluyor.

Programın açılışında, Türkiyeden herhangi bir ilin ismini yazıyorsunuz ve internet bağlantısı aracılığı ile, hava tahmin raporları cep telefonunuza geliyor.

Yukarıda söylediğimden daha da hoş olan tarafı, Kadir arkadaşın, programın kaynak kodlarını kendi blogu üzerinden dağıtması olmuş.  Merak ile indirdiğim kaynak kodlarını incelerken, bu sayfada yapılmış olan “Program açılışında default olarak son girilen ilin bilgilerinin ekrana gelmesi gibi bir parametrik seçenek eklenebilir.”  yorumu, dikkatimi çekti ve open source olan bu programa, open source programıcıs ruhu(:)) ile bu özelliği ben eklemeye karar verdim…  Ve biraz uğraştıktan sonra, istenilen özelliği içeren sürümü rapid’e yükledim..  Aşağıki linklerden indirebilirsiniz.

Programın orjinal Source Download Adresi: Source Download Linki

Programın orjinal  apk Dosyası :   apk dosyası Download Linki

Benim ekleme yaptığım halinin apk dosyası: http://rapidshare.com/files/347255245/Hava_Durumu.apk.html

Benim ekleme yaptığım halinin proje dosyası: http://rapidshare.com/files/347255520/Hava_Durumu.rar.html

Windows 7 – 64 bit Üzerinde Eclipse Çalıştırmak

Posted in Diğer, Java by ferhanakman on 31/01/2010

Yeni bir bilgisayar almanın heyecanı ile ilk yaptığım işlerden bir taneside Eclipse’i kurmaya çalışmak oldu. Önce Sun’ın sitesinden JDK’nın 64 bit sürümünü indirip kurdum ve ardından da Eclipse’in kurulumunu yapmaya çalıştım. Eclipse’in 64 bit versiyonu bulunmadığından mecburi olarak 32 bit sürümünü indiriyoruz. Ve aşağıdaki hatalar karşımıza çıkıyor:

Yukarıdaki mesaja uyup, dediklerini yerine getirdiğimizde ise aşağıdaki hata ile karşı karşıya kalınıyor.

Bu sorun hem Windows 7′de hem de Windows Vista da yaşanıyormuş. Çözüm ise çok basit. Yapmış olduğunuz JDK 64 bitin yanına bir de JDK’nın 32 bitlik versiyonunu kuruyoruz. Ve dertlerimizden kurtuluyoruz :)

Şununla etiketlendi:, , ,

3 Aylık Blog İstatistiğim (Ekim– Kasım – Aralık)

Posted in Diğer by ferhanakman on 22/01/2010

Özel bir nedeni olmasa da, bunu yaparak eğlendiğim için yine blog istatistiğimi yayınlayacağım:) Herhangi bir kaygı gütmeden yine ne kadar az sayıda ziyaretçimin olduğunu deşifre ediyorum ve ziyaretçim az da olsa, hatta hatta baika sitelerde yayınlanan yazılarım kendi blogumdaki yazılarımdan daha fazla “yorum” alsa da memnunum blogumdan:)

Son 3 Ayda En Çok okunan 5 konu:
Sorularla Android İşletim Sistemi
Adım Adım Android Kurulumu
GWT ile Veritabanı Bağlantısı Yapmak (RPC)
Mobil İşletim Sistemleri ve Programlama
Google Web Toolkit (GWT) ile Pratik AJAX

En çok ziyaretçi gönderen 3 site:
androidprogramlama.com
forum.ceviz.net
google.com

Arama motoru terimleri:
android işletim sistemi
android programlama
mustafa ferhan akman

3 aylık ziyaretçi sayısı:
7,210 (+ %50 )

Toplam 83 yazı, 181 yorum, 28 kategori ve 104 tag yer almaktadır.

Şununla etiketlendi:,

İki Activity Arasında Bilgi Göndermek

Posted in Android, Makale & Döküman, Programlama by ferhanakman on 21/01/2010

Bilinmediği zaman android programıcısnın başına dert olan küçük bir noktadan bahsedeceğim.

Zaman zaman bir activity başlatılırken aynı zamanda da onunla beraber bir data göndermek isteyebiliriz. İnternetten araştırdığımda böyle bir şey için google android-developer grup sitesinde, bir class oluşturulup, içerisinde tanımlanacak static değerler aracılığı ile data taşınabileceğine değilmiş. Pek tatmin etmeyen bir yöntem olduğundan, biraz daha araştırdım ve aşağıdaki yöntemin varlığını keşfettim.

Bir Activity (yada subactivity) başlatırken aşağıdaki gibi Intent’i kullanıyoruz.

Intent i = new Intent(this, OtherClass.class);
startActivity(i);

Burada, intent’i start etmeden önce,  aşağıdaki gibi intent’e extra data ekleyebiliriz.

Intent i = new Intent(this, OtherClass.class);
i.putExtra(“Android Programcısı”, “Mustafa Ferhan Akman”);
startActivity(i);

i.putExtra(“key”,”value”) şeklinde gönderdiğimiz değeri, OtherClass isimli activity içerisinden şu şekilde alacağız;

Bundle extraData = getIntent().getExtras();
String name =
extraData.getString("Android Programcısı");

i.putExtra’nın içerisine, int, boolean, String,Bundle gibi farklı tiplerde değer yazabiliyoruz. Fakat direk olarak bir obje gönderemedim. Gönderilmemesininde mantıklı bir sebebini kafamda oturtamadım malesef. Umarım işinize yaracayak bir bilgi olur.

OtherClass.class
Şununla etiketlendi:,

Android 2.1 Yayınlandı

Posted in Android by ferhanakman on 17/01/2010

Bir kaç gün önce Android’in 2.1 sürümü yayınlandı.  Geçntiğimiz günlerde ” Android 2.0.1″ sürümü ile  gelen yeniliklerle hala çalışmamış olduğum için kendi kendime kızarken, bugün bu haberi alınca şaşkınlık ve kızlığı bir arada yaşadım. Çünkü Android o kadar sıklıkla sürüm güncelliyor ki, gelişmeleri takip etmenin imkanı yok.

Daha bir kaç ay önce (Nisan civarı sanırım) Android ile ilgili ilk programımı geliştirirken, Android 1.1 vardı ve API level 2 olarak geçiyordu. Fakat 9 aylık süreçte, API level 7′ye yükseldi. Bir çok API’de revizyona gidildi ve Android platformuna çok güzel yenilikler kazandırıldı. Bu yeni sürümde de, Google USB Driverını güncelleyerek,  Nexus One’a uygun hale getirdi. Önümüzdeki günlerde Android tarafında Nexus One’a özel gelişmelerin olmasını bekliyorum. Android 2.1′in getirmiş olduğu özellikler arasından en çok hoşuma giden yeniliği “live wallpaper” olmuş. Aşağıdaki kısa video da live wallpaper özelliğini görebilirsiniz.

Parantez içerisinde dile getirmeyi arzu ettiğim bir noktada şudur; ilginçtir, 3 ay önce satın almış olduğum Android telefonumun işletim sistemi Türkçe olarak dağıtılmış, hatta telefon daha piyasaya çıkmadan önce “Android artık Türkçeyi destekleyecek” yönünde büyük bir reklam yapılmıştı. Fakat Android’in sürüm numarası 2.1 olmasına rağmen ne kendilerine ait resmi sitelerinde ne de herhangi bir yerde, Türkçe Android’e rastlamak mümkün değil. 26 farklı dilin desteklendiği Android işletim sisteminin Türkçe olarak kazandırılması bence oldukça önemli bir husustur. Zamanında beraberinde Türkçe olarak aldığım Samsung telefonunun içerisindeki Türkçeye çevrilmiş Android’in bu halinin kim ve kimler tarafından (Telefonu Turkiyede satma hakkı sadece Turkcell‘de olduğunu bilmiyormuş gibi yapmak istedim…), hangi amaçla saklandığını merak ediyorum.

daha fazlası için: Android 2.1 release notes

Şununla etiketlendi:, ,

Android: Sensor API’lerini Kullanmak

Posted in Android, Makale & Döküman, Programlama by ferhanakman on 06/01/2010

Yeni nesil mobil cihazlarda artık standart olarak bulunan sensörler sayesinde, elimizdeki küçük cihazlara mükemmel bir işlevsellik ve görsellik katıldığını söylesek, sanırım yanlış bir tabir kullanmış olmayız. Sensörler sayesinde; pusula, oyun kontrolleri, telefon konumuna göre değişen kullanıcı arayüzleri gibi uygulamalar geliştirilebilir.

Android;  orientation (cihazın boşluktaki konumu), accelerometer (ivme), light (ışık), magnetic field (manyetik sensörü), proximity (yakınlık), temprature (sıcaklık) sensörlerini destekliyor. (Bu sensörler yazılımsal olarak android tarafından desteklenmektedir fakat bunları telefonunuzda kullanmak için, telefonunuzun da bu özelliklere destek verecek donanımsal niteliğe sahip olması gerekir.)

Bende bu yazımda, android sensörlerinden orientation ile ilgili bir örnek yapacağım. Yani, android telefonumuzun konumunu, açısını ve sayısal olarak pusula verisini görebileceğiz. Ben bi android programcısı olarak sensörlerle çalışmaktan zevk alıyorum, emin olun sizde bundan çok hoşlanacaksınız:) Şimdi, kod örneğine geçmeden önce aşağıdakileri resimleri iyi kavramak gerekiyor. Orientation sensöründe 3 farklı değer bulunuyor. Bunlar; X, Y, Z değerleri.

X => Azimuth, telefonun ekran kısmının güney ile yaptığı açı azimuth’dur. Ya da diğer bir ifade ile, telefonun arka kapak bölümü kuzeye bakında, X değeri SIFIR olur. Aşağıdaki resimden daha iyi anlayabilirsiniz.

Y => Pitch değeri, telefonun düzlem ile yaptığı açıdır. Mesela, telefon arka kapağı üzerine masaya bırakılırsa, Y = 0, ekranı üzerine masaya bırakılırsa, Y = -/+ 180 olarak değer alır.

Z => Roll, telefonun dönme açısı. Telefon dik konumdayken, hehrangi bir dönme hareketi yapmadığından Z = 0, sağa dönüşlerde negatif dönme açısı, sola dönüşlerde pozitif dönme açısı yapar.

Şimdi sıra geldi, bu sensörleri kullanabileceğimiz örnek bir program yazmaya.  Sensörleri dinlemek için, SensorListener‘dan yararlanıyoruz.

public class MFASensor extends Activity implements SensorListener

SensorListener bize public void onAccuracyChanged(int sensorID, int accuracy) ve public void onSensorChanged(int pSensor, float[] values) fonksiyonlarını implemente etmemizi söylüyor. Sensörlere dair ilgili bilgiler bu iki fonksiyon aracılığı ile bize ulaşacak. onAccuracyChanced() sensörlerin çalışmasında aslında pek bir görevi yok diyebiliriz. Bu konudaki yabancı sitelerde bu konuyla ilgili örnekleri incelediğimde bu fonksiyonun genelde log tutmak için kullanıldığını gördüm.

onSensırChanged() fonksiyonu sayesinde ilgilendiğimiz sensöre dair bilgileri alacağız. Burada float arrayi şeklinde tanımlanmış olan values değişkeninin elemanlarının sahipleri şu şekildedir; values[0] = azimuth, values[1] = pitch, values[2] = roll. Bu değerleri array indexini okuyarak öğreniyoruz ve kullanmak istediğimiz yerlerde sensör değeri olarak kullanıyoruz.

Androis Sensor API’sı bi çok sensörü desteklediğini daha önce belirtmiştim. Biz sensor olarak, yukarıdaki açıklaması yapılanı yani orientation sensörü seçip, kullanacağız. Bunun için kendi unique integer ID’sini bu şekilde belirtiyoruz.

private int sensor = SensorManager.SENSOR_ORIENTATION;

Telefonun donanımından, sensörlere ulaşmak için önce bir sensor manager tanımlıyoruz ve altındaki satırı gerçek sensor managera ulaşmak için kullanıyoruz;

private SensorManager sensorManager;
sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);

Önemli Not 1: Kodlar android emulator üzerinde direk çalışmayacaktır, telefona yükleyerek çalıştırabilirsiniz.  Sensor similasyonu için openIntent is minde bir eklenti olduğunu duymuştum, araştırabilirsiniz.

Önemli Not 2: Telefonunuzun Settings > sound&display > orientation özelliği kapalı yada açık olması elde ettiğiniz pitch ve roll değerlerinin farklı olmasına neden olur. Mesela, bu özellik kapalı ise; pitch ve roll değeri yukarıda anlatılan resmin %100 aynısıdır. Fakat, eğer orientation özelliği açık ise, telefonunuzu (tıpkı mesaj yazar gibi) yana yatırdığınızda, otomatik orientation özelliğinden dolayı, pitch değeri roll değeri ile ve roll değeri pitch değer yer değiştirir.Bu durumun ilk etapta kafanızı karıştırmasını önlemek için orientation özelliğini kapatmanızı öneririm yada values[] değerlerini alırken, 0-1-2 yerine 3-4-5 indexlerini kullanırsanız, telefonun orientation’ı değişse bile elinizdeki verilerin yerleri değişmeyecektir.

Orientation Sensöre ait çalışır bir demoyu apk formatında buradan indirip, telefonunuzda hemen deneyebilirsiniz.
Orientation Sensore ait kaynak kodları buradan indirebilirsiniz.

Hoşçakalın,
Mustafa Ferhan Akman
AndroidProgramlama.com

Referanslar:

  • Resimler Novoda’nın “sensor event cheat sheet”‘inden alınmıştır.

Mobil İşletim Sistemleri ve Programlama

Posted in Android, Makale & Döküman, Programlama by ferhanakman on 01/12/2009

Piyasada bulunan farklı mobil işletim sistemleri mevcut. Bir çoğu hakkında derinlemesine değil yüzeysel bilgim var, fakat kafamdakileri biraz olsun toparlayarak bir yazıya dökmek istedim. Yazımın, bu tarz konulara eğilecek arkadaşlar için bir çıkış noktası olabileceğini ümit ediyorum.

Şuan piyasada olan 9 işletim işletim sistemine ve onların arkasındakilere bir göz atarak giriş yapalım;

İşletim Sistemi Şirket
Android Google (Open Handset Alliance (OHA))
Symbian OS Symbian Ltd (Nokia satın aldı)
iPhone OS Apple
BlackBerry OS Research In Motion (RIM)
Windows Mobile Microsoft
Linux (LiMo, Access Linux …)
Palm OS (Garnet) Palm
Palm webOS (Pre) Palm
Binary Runtime Evironment for Wiress (BREW) Qualcomm

Şirket isimlerini özellikle verdim çünkü bir yazılımın yada platformun varlığını sürdürüp daha çok insana hitap eder olması, -malesef- yazılımın kalitesinden çok arkasındaki şirketin büyüklüğünden kaynaklanıyor. Lafın özü, bu işletim sistemlerinin yanlarında yazan şirket isimlerine bakarak, üç aşağı beş yukarı, gelecekleri konusunda fikir sahibi olabileceğimizi düşünüyorum.

Verdiğim 9 işletim sisteminden en çok paya tabii ki Symbian sahip. Nasıl ki, son zamanlarda Kurtlar Vadisi isimli diziyi “eskinin hatırına” izliyorsak, açıkcası Symbian‘da tam olarak böyle bir işletim sistemi:) Her ne kadar Nokia tarafından alınmış olsa ve ardından da pazar daralmasını önlemek için Open Source bir platform hale gelmiş olsa da, açıkcası bu daralma, iPhone, Android ve BlackBerry ‘nin zirve noktalarına ulaşıncaya kadar sürecek gibi görünüyor.  Symbian da uygulama geliştirmek isteyen programcılar, Java (JME), NS Basic ve Python gibi dilleri kullanabiliyor. Bu dillerde yazılan kodlar Native olarak C/C++ ‘a çevriliyor. Symbianda kod yazacaksanız, python ve Java bilmiyorsanız, NS Basic‘i öncelikli olarak incelemenizi öneririm. Symbian da kod geliştirmek, Symbian’ın yapısı itibari ile iPhone ve Androidden daha karmaşık olduğunu söylemek sanırım yanlış olmaz. (python ile kod geliştirmenin daha kolay olduğunu söyleyenler var fakat özellik ve kolaylık olarak neleri karşıladığını tam bilmediğimden yorum yazmayacağım ) Symbian, bugün sahip mimarisi itibari, “geri kalmış bir işletim sistemidir” demek, sizce yanlışmıdır?

BlackBerry işletim sisteminde network mimarisinin belirli kısıtlamalara dayandırılması programcılar açısından en başta gelen zorluklardan birtanesidir. 2009 yılının başlarında yapılan bir  araştırmada BlackBerry’nin pazar payı % 19.5 gibi büyük bir rakama sahip olduğu anlaşılmıştır. (o zaman ki şartlarda, pazar büyüklüğü olarak 2. sırada). BlackBerry uygulamalarının yapımı ve paylaşılması ise, iPhone, Android, Nokia’nın ardından 4. büyüklüktedir. Bu işletim sistemi üzerinde uygulama geliştirmek isteyen programcılar Java (JME) ile uygulamalarını geliştirebilirler. BlackBerry ile uygulama geliştirme konusunda henüz herhangi bir tecrübeye sahip olmadığım için zorluğu&kolaylığı konusunda malesef bilgi veremiyorum.

Microsoft ailesinin her şeyi yapmaya muktedir evladı .NET’i ve onların ürünlerinden olan Windows Mobile kolay kod yazımı, zengin araçları ve gelişmiş yan destekçileri ile programcılar için büyük kolaylıklar sağlar. Fakat Windows Mobile’ın istenilen kalite düzeyinde bir mobil işletim sistemi olmamasından, lisans bedellerinin cep telefonu üreticilerinin canını acıtmasından ve verdiği donanımsal desteğin kısıtlı olup üreticlerin kendileri tarafından özelleştirilememesinden kaynaklanan sorunlardan ötürü, yaygınlaşamamıştır. Açıkcası benim görüşüm;  Windows Mobile, ya evrim geçirip kendisini toparlayacak ya da bu gidişat ile Microsoft’a ağır bir yenilgi getireceğine yönünde artık kalıplaşmış bir görüşürüm olduğunu söylebilirim.

iPhone telefonları bugün en popüler ve pahalı cep telefonları serisini oluşturuyor. Elbette ki bunun altında, kullandığı iPhone işletim sisteminin (Mac OS X) katkısının büyük olduğu söylenebilir. Apple tarafından bazı mimarisel kısıtlamalar altında, programcılar arasında pek bilinmeyen ve yaygın olmayan Objective C ile iPhone uygulamaları geliştirilebiliyor. Fakat buna rağmen, bugün en çok yayınlanan uygulama listesinde, iPhone açık ara 1. sıradadır. iPhone SDK’sının bile paralı olması bence programcılar açısından ciddi bir dezavantaj. iPhone pazarı hızla büyüyor ve yeni geliştirilen bir çok “ilginç” iphone uygulaması insanların ufuklarını açıyor desem sanırım yanlış olmaz. iPhone uygulamalarının bir dezavantajı, arkaplanda (background) çalışabilecek uygulama ve servis geliştirilemiyor olmasıdır. Neyse ki, iPhone’da Java ile kod geliştirilebilecek olması, güzel haber. iPhone SDK’sı ile 11 yazıdan oluşan bir diziyi buradan başlayarak okuyabilirsiniz, Javacı arkadaşlarda, J2ME ile nasıl iPhone uygulamaları geliştirebileceklerine dair bir makaleyi buradan bulabilirler.Ve son olarak yakında tam olarak bitecek olan MonoTouch C#isimli derleyici ile de C# ile iPhone uygulamaları geliştirilebiliyor hale gelecek.

(Yazının devamı için tıklayın)

(daha fazla…)

Java ve C# Kodlarının Karşılaştırılması

Posted in C#, Java, Programlama by ferhanakman on 29/10/2009

Java veya C#’dan herhangi birisini iyi biliyorsanız, oldukça işinize yarayacak bir dökümanı sizlerle paylaşmak istiyorum. Dökümanı incelediğinizde, paylaştığıma değecek kadar güzel olduğuna kanaat getireceğinize inanıyorum.

Karşılaştırma tablosu için tıklayın.

 

Şununla etiketlendi:,

Yazılım Akademisi 2010′a Katılın! Neden mi?

Posted in Etkinlik, IBM by ferhanakman on 27/10/2009

Yazılım Akademisi 2010 için start verilmiş.  Geçen yıl katılıp, ciddi bir efor sarf ettiğimiz yarışmanın güzel şeyler kazandırdığını düşünüyorum. Zamanında IBM’de 9. Olduk yazısında da yazdığım gibi; “… yarışma kültürü gerçekten  çok farklı oluyor. Hem heyecanı, hem telaşesi, hem  beklentisi… Öğrenci arkadaşlara bu tarz yarışmalara girmelerini ve bu heyecanı tadmalarını şiddetle tavsiye ediyorum..

Bu yarışmayı özellikle kimlere tavsiye ediyorum biliyormusunuz? Kıbrısta okuyanlara. Ya da kıbrıs gibi üniversitesi üzerinde önyargı olanlara. Çünkü sizde bir gün benim gibi okulunuzdan mezun olup, iş başvuruları yapacağınız zaman CV’lerinizin önüne ekleyeceğiniz “IBM Yazılım Akademisi 2010′da XX. derece sahibiyim” yazısına ihtiyacınız olacak. Bunu okuyan şirket yetkilisinin, ön yargısı kırılmayacak olsa da, en azından sizi bir görüşmeye davet edecektir. Ee, gerisi yapacağınız görüşmede size almış…

Bu yıl açıklanan projelere bakıldığında, gözüme çarpan Akıllı Aygıtların Çevrimiçi İzlenmesi projesi oldu. Projelerin ise -yine- tamamının web tabanlı olacak olması, proje belirlenmesi konusunda yine aynı yanlışlık üzerinde ısrar edildiği manasına geldiğini düşünüyorum.

Yarışma kültürü streslidir. Yarışmaya girmek için çalışmak, zaman ayırmak, emek sarf etmek gerekir ve bunlarda biraz yürek ister. Yazılım Akademisi 2010′a Katılın! Neden mi? Çünkü 1 satır yukarıda saydıklarım atlatıldığında, -sonucu bizimkisi gibi birinci olamamak bile olsa- geriye güzel bilgi birikimleri, çalışma disiplini, iş bitirebilme öz güveni, proje zamanlarına dair anılar ve CV’nizde yer kaplayacak bir kaç satır kalır. Bu saydıklarımı iş hayatına atılmadan önce elde etmenizin keyfini işe başladığınızda süreceğinize emin olun..

Bence değer…

Şununla etiketlendi:, ,

C# Joystick Kullanımı

Posted in C#, Makale & Döküman, Programlama by ferhanakman on 17/10/2009

http://www.dclstore.co.uk/images/products/logitech-force-3d-pro-joystick-12-button-mac-pc-963352-0120-l.jpgİnsansız araçlar üzerine ar-ge faaliyetleri olan işimin, yazılımsal olarak ilk yapılması gerekenlerden bir tanesi, bir joystick yardımı ile insansız su üstü deniz aracına ait dümenin manuel olarak yönlendirilebilmesi ve üzerindeki kameranın da aynı şekilde; X ve Y eksenlerinde dönebilmesi, kayıt yapabilmesi vs. gibi tüm fonksiyonlarının joystick üzerinden sağlanması gerekliydi.

Bu konuda internetten araştırma yaptığımda herhangi bir Türkçe makale ile karşılaşmadığım için bende bu yazıyı yazmaya karar verdim. C# Joystick gibi harici araçların kullanımının kolay olduğunu bu yazıyı souna kadar okuduğunuzda sizde göreceksiniz.

Classımıza öncelikle birkaç değşken tanımlayarak başlayalım. Bunlardan joystick değişkeni, bizim Device türünden, diğeri ise Joystick’in durum(state) bilgilerini saklayabileceğimizJoystickState değişkeni. Diğerleri ise joystick’ieksen olark durum bilgilerini saklayan değişkenler ve joystick üzerindeki tüm butonların durumlarını saklaya boolean tipinde buttons array’i.  Son olarakta bilgisayara birden fazla bağlı olan joystick bilgisinin instance name’lerini tutabilecek bir String Array’i oluşturuyoruz.

private Device joystick;
private JoystickState state;
public int Xekseni;
public int Yekseni
public int Zekseni;
public bool[] buttonsState;
private string[] joystickStr;

Aşağıdaki kodu yazarak,  şuan bilgisayarımıza bağlı bir oyun kontrol cihazlarını cihaz listemize eklemesini söyledik.

DeviceList gameControllerList = Manager.GetDevices(DeviceClass.GameControl, EnumDevicesFlags.AttachedOnly);

Eklediğimiz listenin sayısı sıfırdan büyükse (daha fazla…)

Şununla etiketlendi:, ,