#software #java #android #permission #runtime permission

Android Runtime Permission

Yavaş yavaş mevcut android cihazlarının API level düzeyi doğal olarak yükselmekte ve bizlerinde tabi ki buna ayak uydurması gerekmekte. Bunlardan biri de Android M – Marshmallow (23) ile gelen Runtime Permissions olayı. Kullanıcı açısından bakıldığında oldukça yararlı birşey gibi duruyor ama tabi ki biz kullanıcılar runtime sırasında çıkan permission dialog daki yazıyı ne kadar okuruz ve buna göre onay veririz meçhul. Aslına bakarsanız çok da okunacağını düşünmüyorum ama olsun yine de güzel. ...

#software #android #java #palette #glide

Android Glide ve Palette Kullanımı

Google ın resim işlemleri için geliştirmiş olduğu Glide kütüphanesi Android kaynaklarını, cache mekanizmasını vs. verimli şekilde kullanarak uygulamanıza hız ve kalite kazandırır. Sizde projenizde resimlerle ilgili herhangi bir işlem yapıyorsanız bu kütüphaneyi incelemenizi tavsiye ediyorum. Github : https://github.com/bumptech/glide Gradle : compile ‘com.github.florent37:glidepalette:1.0.6’ Google ın geliştirmiş olduğu Palette kütüphanesi ise, resimlerinizin renkleriyle ilgilenir. Daha farklı işlemler içinde kullanılabilir resim boyutlandırma vs. gibi. Ama renklerle ilgili işlemler için oldukça güzel bir kütüphanedir. ...

#software #android #java #collections #swap

Java Collections

Collections.swap Swap kelime anlamı ile takas anlamına gelmektedir. Mevcut dizimiz içerisinde elemanların yerlerini değiştirmeye yarar. private static final String[] STRINGS = new String[]{ "1", "2", "3", "4", "5" }; private final List mItems = new ArrayList<>(); public void setArray() { mItems.addAll(Arrays.asList(STRINGS)); } mItems listemizi yazdırdığımızda sonuç şu şekilde olacaktır. // 1,2,3,4,5 private void elemanYerDegistir() { Collections.swap(mItems, 0, 4); } mItems listemizi yazdırdığımızda sonuç şu şekilde olacaktır. // 5,2,3,4,1

#software #android #java #toolbar

Android Custom Toolbar Title

Android Toolbar Android Toolbar bileşeni çok yönlü bir yapıya sahiptir. Android Design Library kullanarak ve AppBarLayout içerisinde tanımlanarak oldukça farklı şekillere bürünebilir. Genel kullanımı aşağıdaki gibidir. <?xml version="1.0" encoding="utf-8"?> <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/primary_dark" tools:context=".MainActivity"> <FrameLayout android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent"> </FrameLayout> <android.support.design.widget.FloatingActionButton android:id="@+id/fab" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|end" android:layout_margin="@dimen/fab_margin" android:src="@android:drawable/ic_dialog_email" /> <android.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content" app:elevation="0dp"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/primary_dark" android:minHeight="?attr/actionBarSize" app:popupTheme="@style/AppTheme.PopupOverlay"/> </android.support.design.widget.AppBarLayout> </android.support.design.widget.CoordinatorLayout> app:elevation="0dp" // AppBarLayout içerisinde ki bu tanımlama default olarak tanımlanmış gölgeyi kaldırır. ...

#software #android #java #fusedlocationapi #foreground service

Foreground Service ile FusedLocationApi Kullanımı

Android service yapısı, Android’in temel bileşenlerinden olup genel kullanım amacı yan iş parçacığı oluşturmaktır. Uzun süren işlemler (download vb.) için olmazsa olmaz bileşendir. Android in service bileşenini kendi ihtiyaçlarınız doğrultusunda özelleştirebilir ve uygulamanızı modern bir yapıya kavuşturabilirsiniz. Burada yapacağımız örnekte kısaca şu aşamaları görücez; Service i foreground olarak başlatmak Ongoing(devamlı gözüken) notification oluşturmak GoogleApiClient a bağlanmak Location bilgisini notification da göstermek İlk olarak Service imiz kodlarını yazalım. Gerekli açıklamalar kodların arasında mevcuttur. ...

#software #java #android #gcmnetworkmanager

Android GcmNetworkManager Kullanımı

GcmNetworkManager kullanarak Android de network tabanlı işlemlerinizi olabildiğince kontrollü bir şekide yapabilirsiniz. GcmNetworkManager ın kullanım alanı daha çok asenkron ve periodic network işlemlerinizi yapılandırmaktır. Tek sefer çalışacak veya Periodic olarak çalışacak işlemleriniz için 2 tip belirlenmiştir. OneoffTask PeriodicTask OneoffTask Kullanımı OneoffTask oneoff = new OneoffTask.Builder() // Uygulamanızı kapatsanız bile tekrar açtığınız da network işleminiz işleme konulur. // Yani isteğinizin kalıcı olup olmamasını bu parametre ile ayarlayabilirsiniz. . ...

#software #java #android #broadcast receiver #internet control

Android Internet Connection Receiver

Uygulamanızın akışını internet kontrolü yaparak yönetmeniz gerekebilir. Bunun için ilk olarak AndroidManifest.xml dosyasına receiver tanımı yapmalısınız. <receiver android:name=".InternetConnectionReceiver"> <intent-filter> <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> </intent-filter> </receiver> InternetConnectionReceiver public class InternetConnectionReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (CheckConnection(context)) { } } } Yukarıda tanımlanmış olan receiver, cihazın ağ yapısında herhangi bir değişiklik olduğunda bunu yakalar. Örneğin wireless açıkken kapattığınız da veya kapalıyken açtığınız da bunu yakayabilirsiniz. CheckConnection ...

#software #android #java #sqlite #activeandroid #orm

Android ActiveAndroid Kullanımı

Anroid ile ORM (Object Relational Mapping) kullanarak veritabanı işlemlerinizi oldukça kolay yapabilirsiniz. ActiveAndroid kütüphanesi ORM kütüphanelerinden biridir. Kütüphaneyi buradan indirebilirsiniz. Kullanımı oldukça basittir. Sadece birkaç noktaya özellikle dikkat edilmesi gerekiyor. Bunlardan biri oluşturmuş olduğunuz tabloya yeni alanlar eklediğiniz de tablonuzu güncellemek. Veya herhangi bir sebeple tabloda çeşitli işlemler yapmak. Aşağıda kısaca Tablo oluşturmaktan ve gerektiğinde Tablo yu nasıl güncelleyeceğimizden bahsedicem. @Table(name = "Items") public class ModelSampleItem extends Model { @Column(name = "Name") public String name; @Column(name = "Surname") public String surname; @Column(name = "Phone") public String phoneNumber; @Column(name = "Xyz") public String xyz; @Column(name = "EMail") public String email; @Column(name = "TryColumn") public String tryColumn; @Column(name = "Column3") public String column3; public ModelSampleItem() { super(); } } Yukarıda ki yapıyı kullanarak istediğiniz Tablo yu oluşturmanız mümkün. ...

#software #android #java #sha1 #keyhashes #bash

Android Key Hashes & SHA1

Android Key Hashes & SHA1 Windows komut satırına aşağıdaki komutu yazarak ulaşabilirsiniz. keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl base64 openssl hatası alırsanız https://code.google.com/p/openssl-for-windows/downloads/detail?name=openssl-0.9.8k_X64.zip adresindeki dosyayı indirdikten sonra çıkan dosyadaki bin klasörünü ortam değişkenlerindeki PATH kısmına eklerseniz sorun ortadan kalkacaktır. Ortam değişkenlerine ulaşmak için : Denetim Masası > Sistem > Gelişmiş Sİstem Ayarları SHA1 ulaşmak için komut satırına aşağıdaki kodu yazmanız yeterli olacaktır. your_user_name yerine kendi kullanıcı adınızı yazmayı unutmayın. ...

#software #android #java #spinner

Android Spinner Text Güncelleme

Dinamik Olarak Spinner Text Güncelleme Android de Spinner yapısı açılır menü (dropdown) olarak kullanlan kullanışlı bir componenttir. Farklı ihtiyaçlarınız doğrultusunda Spinner ınızın elemanlarının değerini değiştirmek isteyebilirsiniz. Örneğin bir ListView iniz var.Ve içerisinde aynı kategoriden ama değişik durumlara sahip itemlar var ve siz bu itemları durumuna göre gruplandırıp sayısını Spinner da göstermek istiyorsunuz. Bunun için aşağıda belirtecek olduğum yapıyı kullanabilirsiniz. Öncellikle String.xml dosyasına Spinner ımızda göstereceğimiz elemanları tanımlıyoruz. String.xml <string name="pazartesi">Pazartesi</string> <string name="sali">Salı</string> <string name="carsamba">Çarşamba</string> <string name="persembe">Perşembe</string> <string name="cuma">Cuma</string> <string name="cumartesi">Cumartesi</string> <string name="pazar">Pazar</string> <string-array name="array_gonderi_list_haftalik"> <item>@string/pazartesi</item> <item>@string/sali</item> <item>@string/carsamba</item> <item>@string/persembe</item> <item>@string/cuma</item> <item>@string/cumartesi</item> <item>@string/pazar</item> </string-array> SpinnerHelper. ...