24 Eylül 2016 Cumartesi

Google-Maps GoogleMap.OnCameraIdleListener Arayüzü

onCameraIdle metodu
Map yakınlaşma/uzaklaşma (zoom) işlemini bitirince çağrılır. Şöyle yaparız.
map.setOnCameraIdleListener (new GoogleMap.OnCameraIdleListener() {
  @Override
  public void onCameraIdle() {
  ...
  }
}

18 Eylül 2016 Pazar

Display Sınıfı

constructor
Şöyle yaparız.
WindowManager wm = ...;
Display display = wm.getDefaultDisplay();
getHeight metodu
Şöyle yaparız.
int h = display.getHeight();
getMetrics metodu
Şöyle yaparız.
DisplayMetrics displayMetrics = new DisplayMetrics();
display.getMetrics(displayMetrics);
getWidth
Şöyle yaparız.
int w = display.getWidth();




WindowManager Sınıfı

getDefaultDisplay metodu
Şöyle yaparız.
WindowManager wm = ...;
Display  display =   wm.getDefaultDisplay();

12 Eylül 2016 Pazartesi

SMSMessage Sınıfı

SMS Okuma
Bir BroadcastReceiver tanımlanır. Kodu şuna benzer.
public class SmsBroadcastReciever extends BroadcastReceiver {

  @Override
  public void onReceive(Context context, Intent intent) {

    Bundle bundle = intent.getExtras();
    
    Object[] sms = (Object[]) bundle.get("pdus");    
    for (Object sm : sms) {
      SmsMessage smsMessage = SmsMessage.createFromPdu((byte[]) sm);
      String smsBody = smsMessage.getMessageBody();
      String senderNumber = smsMessage.getOriginatingAddress();      ...
   }
}
Eğer aynı sınıf hem okuma hem de gönderme için kulllanılıyorsa ikisi şöyle ayırt edilir.
public class SmsBroadcastReciever extends BroadcastReceiver {
  @Override
  public void onReceive(Context context, Intent intent) {
    String MSG_TYPE = intent.getAction();
    if (MSG_TYPE.equals("android.provider.Telephony.SMS_RECEIVED")) {
      ...
    } else if (MSG_TYPE.equals("android.provider.Telephony.SEND_SMS")) {
     ...
    } 
  }
}
createFromPdu metodu
Şöyle yaparız.
byte [] pdu = ...;
SmsMessage sms = SmsMessage.createFromPdu (pdu);
getDisplayMessageBody metodu
Şöyle yaparız.
String message = sms.getDisplayMessageBody();
getMessageBody metodu
Şöyle yaparız.
String message = sms.getMessageBody();
getOriginatingAddress metodu
Şöyle yaparız.
String senderNumber = sms.getOriginatingAddress();
getProtocolIdentifier metodu
Şöyle yaparız.
sms.getProtocolIdentifier();
getStatusOnIcc metodu
Şöyle yaparız.
sms.getStatusOnIcc();
getStatusOnSim metodu
Şöyle yaparız.
sms.getStatusOnSim();
Manifest 
BroadcastReceiver şöyle şöyle etkinleştirilir.
<receiver android:name="com.example.abc.SmsBroadcastReciever">  <intent-filter>
    <action android:name="android.provider.Telephony.SMS_RECEIVED" />
  </intent-filter>
</receiver>
Şu izinlere gerek vardır.
<uses-permission android:name="android.permission.RECEIVE_SMS"
        android:required="true"/>
<uses-permission android:name="android.permission.READ_SMS"
        android:required="true"/>

6 Eylül 2016 Salı

FirebaseMessagingService Sınıfı

onMessageReceived metodu
Şöyle yaparız.
public class FcmMessageService extends FirebaseMessagingService{
  @Override
  public void onMessageReceived(RemoteMessage remoteMessage) {
   ...
  }
}

5 Eylül 2016 Pazartesi

BroadcastReceiver ve Boot

Giriş
Şöyle yaparız.
public class BootCompletedReceiver extends BroadcastReceiver{

  @Override
  public void onReceive(Context context, Intent intent) {

    if ("android.intent.action.BOOT_COMPLETED".equals(intent.getAction())) {
      Intent i = new Intent(context, RestartAlarmsService.class);
      ComponentName service = context.startService(i);
    }
  }
}
Manifest dosyasında izin tanımlamak için şöyle yaparız.
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
Manifest dosyasında receiver tanımlamak için şöyle yaparız.
<receiver android:name="com.foo.Alarms.BootCompletedReceiver"
  android:enabled="true">
  <intent-filter>
    <action android:name="android.intent.action.BOOT_COMPLETED" />
  </intent-filter>
</receiver>

<service android:name="com.foo.Alarms.RestartAlarmsService"/>



IntentService Sınıfı

Giriş
Servis bir kere çalıştıktan sonra durur.

OnHandleIntent metodu
Şöyle yaparız.
public class RestartAlarmsService extends IntentService{

  public RestartAlarmsService() {
    super("RestartAlarmsService");
  }

  @Override
  protected void onHandleIntent(Intent intent) {

    // Restart your alarms here.
    // open database, iterate through every alarm and set them again

  }
}