30 Aralık 2016 Cuma

Base64 Sınıfı

Giriş
Bu sınıf android.util.Base64 isim alanında.

encodeToString metodu
Şöyle yaparız.
byte[] data = ...;
String str = Base64.encodeToString (data, Base64.DEFAULT);

Volley JsonRequest Sınıfı

Giriş
Bu sınıf soyuttur. Json gönderip T tipi döndürür.

Tanımlama
Şöyle yaparız.
public class ImageSendJsonObjectHeader extends JsonRequest<JSONObject> {

  @Override
  protected Response<JSONObject> parseNetworkResponse(NetworkResponse response) {
    ...
  }

  @Override
  public String getBodyContentType() {
    return "form-data";
  }

  @Override
  public Map<String, String> getHeaders() throws AuthFailureError {
    HashMap<String, String> headers = new HashMap<String, String>();
    ...
    return headers;
  }
}

Volley StringRequest Sınıfı

constructor
Şöyle yaparız.
String url = "http://...";

StringRequest stringRequest = new StringRequest(url, 
  new Response.Listener<String>() {...},
  new Response.ErrorListener()    {...}
);
Cevabı kontrol etmek için şöyle yaparız.
new Response.Listener<String>() {
  @Override
  public void onResponse(String response) {
    if (response.trim().equals("success")) {
      ...
    }
  }
}
constructor - post
Şöyle yaparız.
String url ="http://...";

// Request a string response from the provided URL.
StringRequest stringRequest = new StringRequest(Request.Method.POST, url,
  new Response.Listener<String>() {...},
  new Response.ErrorListener()    {...}
);
getBody metodu
Http post için kullanılır. Gönderilecek veri için getBody metodu kodlanır. Şöyle yaparız.
@Override
public byte[] getBody() throws AuthFailureError {
  String jsonString = ... ;
  return jsonString.getBytes();}
getHeaders metodu
Http post için kullanılır. Şöyle yaparız.
@Override
public Map<String, String> getHeaders(){
  HashMap<String, String> headers = new HashMap<String, String>();
  headers.put("Content-Type", "text/html");

  return headers;
}
getParams metodu
Http post için kullanılır. Şöyle yaparız.
@Override
protected Map<String, String> getParams() {
  Map<String, String> params = new HashMap<String, String>();
  params.put("a_id", application_id);
  return params;
}


29 Aralık 2016 Perşembe

Intent ve ACTION_VIEW

Uri
Uri'yi hangi uygulamayı kullanarak açmak istediğimizi belirtmeden göstermek için şöyle yaparız. Bu durumda Android kurulu uygulamaların listesinden seçim yapmamızı ister.
startActivity(new Intent(Intent.ACTION_VIEW,
  Uri.parse("https://www.youtube.com/watch?v=bzSTpdcs-EI")));
Uri + setPackage
Uri'yi belirtilen uygulamayı kullanarak göstermek için şöyle yaparız.
Intent intent = new Intent(Intent.ACTION_VIEW,
  Uri.parse("https://www.youtube.com/watch?v=bzSTpdcs-EI"));
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setPackage("com.google.android.youtube");
startActivity(intent)

27 Aralık 2016 Salı

BluetoothSocket Sınıfı

Giriş
Şu satırı dahil ederiz.
import android.bluetooth.BluetoothSocket;
constructor
Şöyle yaparız.
BluetoothDevice device = ...;
BluetoothSocket sock = device.createRfcommSocketToServiceRecord(MY_UUID);
close metodu
Şöyle yaparız.
socket.close();
connect metodu
Şöyle yaparız.
socket.connect();
getInputStream metodu
Nesne okuyacağımız zaman InputStream, ObjectInputStream ile sarmalanır. Şöyle yaparız.
InputStream in = new ObjectInputStream(socket.getInputStream());
getOutputStream metodu
Şöyle yaparız.
OutputStream outStream = 
try {
  outStream = btSocket.getOutputStream();
} catch (IOException e) {
  ...
}
Nesne göndereceğimiz zaman OutputStream, ObjectOutputStream ile sarmalanır. Şöyle yaparız.
OutputStream out = new ObjectOutputStream(socket.getOutputStream());


26 Aralık 2016 Pazartesi

Image Sınıfı

Giriş 
Şu satırı dahil ederiz.
import android.medi.Image;
Bu sınıf java.awt.Image sınıfından farklıdır. 

Volley VolleyMultipartRequest Sınıfı

constructor
Şöyle yaparız.
VolleyMultipartRequest multipartRequest = new VolleyMultipartRequest(
  Request.Method.POST, url, 
  new Response.Listener<NetworkResponse>() {...},
  new Response.ErrorListener() {...});
getByteData metodu
Şöyle yaparız.
@Override
protected Map<String, DataPart> getByteData() {
  Map<String, DataPart> params = new HashMap<>();

  params.put("image", new DataPart("image.jpg", byteArray));
   
  return params;
}
getHeaders metodu
Şöyle yaparız.
@Override
public Map<String, String> getHeaders() throws AuthFailureError {

 Map<String, String> headers = new HashMap<String, String>();

 return headers;
}




Volley RequestQueue Sınıfı

constructor
Şöyle yaparız.
RequestQueue requestQueue = Volley.newRequestQueue(this);
add metodu
Şöyle yaparız.
StringRequest stringRequest = ...;
requestQueue.add (stringRequest);
Şöyle yaparız.
JsonArrayRequest jsonArrayRequest = ...;
requestQueue.add (jsonArrayRequest);
cancelAll metodu
Şöyle yaparız.
Object tag = ...;
requestQueue.cancelAll (tag);

25 Aralık 2016 Pazar

AlarmManager Sınıfı

constructor
Şöyle yaparız.
AlarmManager am = (AlarmManager)getSystemService(Activity.ALARM_SERVICE);
INTERVAL_DAY Alanı
Şöyle yaparız. Bir günün milisaniye cinsinden uzunluğudur.
AlarmManager.INTERVAL_DAY;
Şöyle yaparız.
Date date = ...;
PendingIntent intent = ...;
am.setRepeating(AlarmManager.RTC_WAKEUP, date,AlarmManager.INTERVAL_DAY, intent);
setExact metodu
Şöyle yaparız.
PendingIntent pendingIntent = ...;

Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.add(Calendar.SECOND, 20);

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
  am.setExact(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
  
} else {
  am.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
  
}
setRepeating metodu
İkinci parametre alarmın ne zamandan itibaren çalışacağını belirtir. Üçüncü parametre (interval) milisaniye cinsindendir ve çalışma aralığını belirtir.

Örnek 1
Alarmın hemen başlayarak 23 saatte bir tekrar etmesi için şöyle yaparız.
PendingIntent pendingIntent = ...;
am.setRepeating(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime(),
                23 * 60 * 60 * 1000,pendingIntent);
Örnek 2
Alarmın saat 6'da başlayarak 24 saatte bir tekrar etmesi için şöyle yaparız. Önce bugünün saat 6'sını ayarlarız.
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, 6);
calendar.set(Calendar.MINUTE, 0);
int interval = 1000 * 60 * 60 * 24;
Sonra alarmı kurarız
//Repeating on every 24 hours interval
am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
                AlarmManager.INTERVAL_DAY, pendingIntent);