24 Ağustos 2017 Perşembe

BluetoothAdapter Sınıfı

BluetoothAdapter Sınıfı
Giriş
Şu satırı dahil ederiz.
import android.bluetooth.BluetoothAdapter;
Bu sınıfı kullanarak BlueToothDevice nesnesi elde edilir. BlueToothDevice nesnesini kullanarak BluetoothSocket nesnesine ulaşılır. Şöyle yaparız.
BluetoothAdapter blueAdapter = BluetoothAdapter.getDefaultAdapter();
if (blueAdapter != null) {
  if (blueAdapter.isEnabled()) {
    Set<BluetoothDevice> bondedDevices = blueAdapter.getBondedDevices();

    if(bondedDevices.size() > 0) {
      Object[] devices = (Object []) bondedDevices.toArray();
      BluetoothDevice device = (BluetoothDevice) devices[position];
      ParcelUuid[] uuids = device.getUuids();
      BluetoothSocket s = device.createRfcommSocketToServiceRecord(uuids[0].getUuid());
      s.connect();
      OutputStream outputStream= s.getOutputStream();
      InputStream inStream = s.getInputStream();
      ...
    } //size
  } //enabled
} //adapter
cancelDiscovery metodu
Şöyle yaparız.
adapter.cancelDiscovery();
getBondedDevices metodu
Şöyle yaparız.
Set<BluetoothDevice>pairedDevices = adapter.getBondedDevices();
getDefaultAdapter metodu
Şöyle yaparız.
BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
getRemoteDevice metodu
Şöyle yaparız.
String address = "00:13:EF:00:00:4C";
BluetoothDevice device = adapter.getRemoteDevice(address);
isEnabled metodu
Şöyle yaparız.
if(!adapter.isEnabled()) {...}
LesScanCallback
BLE kartlarını tarar. Şöyle yaparız.
BluetoothAdapter.LeScanCallback mLeScanCallback =
  new BluetoothAdapter.LeScanCallback() {

    @Override
    public void onLeScan(final BluetoothDevice device, 
                         final int rssi, byte[] scanRecord) {
    ...
    });
  }
};
ScanCallBack Sınıfı
İskeleti şöyledir.
ScanCallback scanCallback = new ScanCallback() {

  @Override
  public void onScanResult(int callbackType, ScanResult result) {
    BluetoothDevice btDevice = result.getDevice();
  }

  @Override
  public void onBatchScanResults(List<ScanResult> results) {
    for (ScanResult sr : results) {
      ...
    }
  }

  @Override
  public void onScanFailed(int errorCode) {
    ...
  }
};



23 Ağustos 2017 Çarşamba

AssetManager Sınıfı

Giriş
Açıklaması şöyle
In res/ folder all xml files are precompiled, whereas in assets/ folder they are not.
Bu sınıf app/src/main/assets altındaki dosyaları okuyabilmemizi sağlar.

Constructor
Bu sınıf context nesnesi tarafından döndürülür. Şöyle yaparız
AssetManager am = context.getAssets();
Activity içinde şöyle yaparız.
Context context = getApplicationContext ();
AssetManager am = context.getAssets();
open metodu
Şöyle yaparız
InputStream is = am.open("words.txt");
Daha sonra bu stream ile dosyayı okumak için şöyle yaparız.
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line = null;

while ((line = br.readLine()) != null) {
  ...
}

18 Ağustos 2017 Cuma

Google-Maps GoogleMap Sınıfı

Giriş
Şu satırı dahil ederiz.
import com.google.android.gms.maps.GoogleMap;
addCircle metodu
CircleOptions yazısına bakınız.

addMarker metodu
MarkerOptions yazısına bakınız.

addPolyLine metodu
Elimizde bir konum listesi olsun.
traceOfMe = new ArrayList<LatLng>();
Şöyle yaparız.
PolylineOptions polylineOpt = new PolylineOptions();
for (LatLng latlng : traceOfMe) {
  polylineOpt.add(latlng);
}

polylineOpt.color(Color.RED);

Polyline line = mMap.addPolyline(polylineOpt);
animateCamera metodu
Animasyon ile camera konumunu değiştirir. Temelde moveCamera() ile aynıdır. Sadece konumu değiştirmek için şöyle yaparız.
LatLngBounds bounds=new LatLngBounds.Builder().build();
bounds.including(new LatLng(...,...));
...

googleMap.animateCamera(CameraUpdateFactory.newLatLngBounds(bounds, 100));
Sadece zoom'lamak için şöyle yaparız.
// Zoom in the Google Map
googleMap.animateCamera(CameraUpdateFactory.zoomTo(18));
Sadece zoom'lamak için şöyle yaparız. Zoomlama 5 saniye sürer.
googleMap.animateCamera(CameraUpdateFactory.zoomTo(16), 5000, null);
clear metodu
Tüm marker, polyline, circle gibi şekilleri siler
googleMap.clear();
getCameraPosition metodu
Şöyle yaparız.
double myLat = gooleMap.getCameraPosition().target.latitude;
double myLng = gooleMap.getCameraPosition().target.longitude;
getUiSettings metodu
Ekranda nelerin gösterileceğini atayabiliriz. Gösterilen bileşenler etkin olmak zorunda değiller.
googleMap.getUiSettings().setMyLocationButtonEnabled(false);
googleMap.getUiSettings().setZoomControlsEnabled(true);
Şöyle yapabiliriz.
googleMap.getUiSettings().setCompassEnabled(false);
Şöyle yapabiliriz.
googleMap.getUiSettings().setAllGesturesEnabled(false);
moveCamera metodu
Animasyon olmadan camera konumunu değiştirir. Sadece konumu değiştirmek için şöyle yaparız.
LatLng latLng = new LatLng(latitude, longitude);
googleMap.moveCamera(CameraUpdateFactory.newLatLng(latLng));
Sadece zoom seviyesini değiştirmek için şöyle yaparız.
googleMap.moveCamera(CameraUpdateFactory.zoomTo(12));
Konum ve zoom seviyesini değiştirmek için şöyle yaparız.
LatLng position = ...;
int ZOOM_LEVEL = 14;
googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(position, ZOOM_LEVEL));
Ya da iki defa çağırabiliriz.
googleMap.moveCamera(CameraUpdateFactory.zoomTo(12));
googleMap.moveCamera(CameraUpdateFactory.newLatLng(new LatLng(..., ...)));
setMapType metodu
Şöyle yaparız.
googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
setMyLocationEnabled metodu
Sağ üstte Current Location düğmesinin görünmesini sağlar. Şöyle yaparız.
googleMap.setMyLocationEnabled(true);
setOnCameraIdleListener metodu
GoogleMap.OnCameraIdleListener Arayüzü yazısına taşıdım.

setOnMapClickListener metodu
GoogleMap.OnClickListener Arayüzü yazısına taşıdım.

setOnMapLoadedCallback metodu
Şöyle yaparız.
googleMap.setOnMapLoadedCallback(new GoogleMap.OnMapLoadedCallback() {
  @Override
  public void onMapLoaded() {
    ...
  }
});
setOnMapLongClickListener
Şöyle yaparız.
googleMap.setOnMapLongClickListener(this);