gökhan
gökhan
Çanakkale
07/05/2014 tarihinden beri üye
2095 GY Puanı
857 GY Sırası

Kişisel Sayfaları

İlgi Alanları

İş Tecrubesi

Kullanıcıya ait İş tecrübesi bilgisi bulunmamaktadır.

Eğitim Geçmişi

Doğu Akdeniz Üniversitesi
| Aralık 2020 - Aralık 2020

Sertifikalar & Başarılar

GY Sertifikaları (5)
Web Programlama 101 Sertifikası
Veriliş Tarihi: Mayıs 2016
101 Sertifikası
Veriliş Tarihi: Mayıs 2016
Android 301 Sertifikası
Veriliş Tarihi: Mayıs 2015
Android 201 Sertifikası
Veriliş Tarihi: Mayıs 2015
Android 101 Sertifikası
Veriliş Tarihi: Mayıs 2015
Diğer Sertifikaları (0)
Kullanıcıya ait sertifika bulunmamaktadır.
Test Sonuçları (0)

Kullanıcıya ait test sonucu bulunmamaktadır.

Dil Becerileri

Son Forum Aktiviteleri

87
Tümünü Gör

Android Servis Arka Planda Çalışmıyor

Merhaba Arkadaşlar Android servis oluşturdum. Bu servis konum güncellenince  api çağırıyor ve veri kaydediyor. Uygulama ön planda olunca sorun yok ancak arka plana alınca servisim çalışmıyor . Sebebi ne  olabilir ? Servisim aşağıdaki gibidir.

 


public class VehicleGPSTrackerService extends Service {

    private LocationListener listener;
    private LocationManager locationManager;
    boolean gps_enabled = false;
    private Location llocation;
    private static final long MIN_TIME_BW_UPDATES = 1000 * 5 * 1; // 5 saniye

    public Coordinate lastCoordinate;

    TelephonyManager mTelephonyManager;

    @Nullable
    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {

        Toast.makeText(this,getBaseContext().getResources().getString(R.string.tracking_on_started), Toast.LENGTH_SHORT).show();
        Log.e("onStartCommand", "GPS Service onStartCommand");

        lastCoordinate = new Coordinate();
        lastCoordinate.Latitude =0;
        lastCoordinate.Longitude = 0;

        try {
            locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

            gps_enabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);


            if(!isNetworkAvailable(getBaseContext()))
            {
                Intent i = new Intent("location_update");
                i.putExtra("status", getBaseContext().getResources().getString(R.string.internet_connection_notfound));
                sendBroadcast(i);
            }

            if(!gps_enabled)
            {
                Intent i = new Intent("location_update");
                i.putExtra("status",  getBaseContext().getResources().getString(R.string.cannot_gps_data));
                sendBroadcast(i);
            }


            if (isNetworkAvailable(getBaseContext()) && gps_enabled)
            {
                if (locationManager != null) {
                    if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {

                        return Service.START_STICKY;
                    }
                    llocation = locationManager.getLastKnownLocation(locationManager.GPS_PROVIDER);
                    updateWithNewLocation(llocation);
                    //locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,MIN_TIME_BW_UPDATES,0, this.listener);
                    locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,MIN_TIME_BW_UPDATES,0, this.listener);
                }
            }
        }
        catch (Exception e)
        {
            Log.e("gpsserviceexception",e.getMessage());
        }

        return super.onStartCommand(intent, flags, startId);


    }

    public boolean isNetworkAvailable(final Context context) {
        final ConnectivityManager connectivityManager = ((ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE));
        return connectivityManager.getActiveNetworkInfo() != null && connectivityManager.getActiveNetworkInfo().isConnected();
    }

    public void updateWithNewLocation(Location location)
    {
        listener = new LocationListener() {

            @Override
            public void onLocationChanged(Location location)
            {
                lastCoordinate = new Coordinate();
                double lat = location.getLatitude();
                double longi = location.getLongitude();
                lastCoordinate.Latitude =lat;
                lastCoordinate.Longitude = longi;

                DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                Date date = new Date(location.getTime());
                String formatted = format.format(date);

                final JSONObject headerObject = new JSONObject();
                final JSONObject params = new JSONObject();
                try
                {
                    JSONObject coordinate = new JSONObject();
                    coordinate.put("Latitude",lastCoordinate.Latitude);
                    coordinate.put("Longitude",lastCoordinate.Longitude);

                    JSONArray jsonArrayLogs = new JSONArray();

                    params.put("Status", EnumHelpers.EnumStatus.Active.getValue());
                    params.put("Coordinate", coordinate);
                    params.put("LastInfoDate",formatted);

                    jsonArrayLogs.put(params);

                    headerObject.put("UserId", AppEngine.CURRENT_USER.getId());
                    headerObject.put("ActiveDeviceId",getDeviceImei());
                    headerObject.put("Details",jsonArrayLogs);

                    Log.e("AktiveData",headerObject.toString());

                    SentDataToVolley(headerObject);
                }
                catch (Exception e){}

                Intent i = new Intent("location_update");
                i.putExtra("status", getBaseContext().getResources().getString(R.string.active));
                sendBroadcast(i);
            }

            @Override
            public void onStatusChanged(String provider, int status, Bundle extras) {

            }

            @Override
            public void onProviderEnabled(String provider) {

                Intent i = new Intent("location_update");
                i.putExtra("status", getBaseContext().getResources().getString(R.string.active));
                sendBroadcast(i);
            }

            @Override
            public void onProviderDisabled(String provider) {

                final JSONObject headerObject = new JSONObject();
                final JSONObject params = new JSONObject();
                try
                {
                    JSONObject coordinate = new JSONObject();
                    coordinate.put("Latitude",0);
                    coordinate.put("Longitude",0);

                    JSONArray jsonArrayLogs = new JSONArray();

                    params.put("Status", EnumHelpers.EnumStatus.NoGpsSignal.getValue());
                    params.put("Coordinate", coordinate);
                    params.put("LastInfoDate",getCurrentDate());

                    jsonArrayLogs.put(params);

                    headerObject.put("UserId", AppEngine.CURRENT_USER.getId());
                    headerObject.put("ActiveDeviceId",getDeviceImei());
                    headerObject.put("Details",jsonArrayLogs);

                    Log.e("NoSignalData",headerObject.toString());

                    SentDataToVolley(headerObject);
                }
                catch (Exception e){}

                Intent i = new Intent("location_update");
                i.putExtra("status", getBaseContext().getResources().getString(R.string.cannot_gps_data));
                sendBroadcast(i);
            }
        };
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        Toast.makeText(this, getBaseContext().getResources().getString(R.string.stop_tracking), Toast.LENGTH_LONG).show();

        final JSONObject headerObject = new JSONObject();
        final JSONObject params = new JSONObject();
        try
        {
            JSONObject coordinate = new JSONObject();
            coordinate.put("Latitude",lastCoordinate.Latitude);
            coordinate.put("Longitude",lastCoordinate.Longitude);

            JSONArray jsonArrayLogs = new JSONArray();

            params.put("Status", EnumHelpers.EnumStatus.StopTracking.getValue());
            params.put("Coordinate", coordinate);
            params.put("LastInfoDate",getCurrentDate());

            jsonArrayLogs.put(params);

            headerObject.put("UserId", AppEngine.CURRENT_USER.getId());
            headerObject.put("ActiveDeviceId",getDeviceImei());
            headerObject.put("Details",jsonArrayLogs);

            Log.e("StopTrackingData",headerObject.toString());

            SentDataToVolley(headerObject);
        }
        catch (Exception e){}


        if(locationManager != null){
            //noinspection MissingPermission
            locationManager.removeUpdates(listener);
        }
    }

    public void SentDataToVolley(final JSONObject headerObject )
    {

        RequestQueue getRequestQueue = Volley.newRequestQueue(getApplicationContext());

        JsonObjectRequest jsonObjReq = new JsonObjectRequest(Request.Method.POST, UrlConfig.VOLLEY_MOBILEGPSLOG, headerObject, new Response.Listener<JSONObject>() {
            @Override
            public void onResponse(JSONObject response)
            {
                Log.e("onResponse", response.toString());
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error)
            {
                VolleyLog.d("onErrorResponse", "Error: " + error.getMessage());
                Log.e("Oonfail", error.toString());
            }
        }) {
            @Override
            public Map<String, String> getHeaders() throws AuthFailureError {
                HashMap<String, String> headers = new HashMap<String, String>();
                headers.put("Content-Type", "application/json; charset=utf-8");
                headers.put("Authorization-Token", ConstansApi.API_KEY);
                return headers;
            }
        };
        jsonObjReq.setRetryPolicy(new DefaultRetryPolicy(60000,    DefaultRetryPolicy.DEFAULT_MAX_RETRIES,    DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));

        // Adding request to request queue
        getRequestQueue.add(jsonObjReq);

    }

    public String getCurrentDate()
    {
        Calendar c = Calendar.getInstance();
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String strDate = format.format(c.getTime());

        return strDate;
    }

    private String getDeviceImei() {

        mTelephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
        String deviceid = mTelephonyManager.getDeviceId();
        Log.d("msg", "DeviceImei " + deviceid);
        return deviceid;
    }

}

Bu servisi de şu şekilde çağırıyorum

 Intent i =new Intent(MainActivity.this,VehicleGPSTrackerService.class);
                startService(i);

manifast.xml dosyası da şu sekildedir

 <service
            android:name=".VehicleGPSTrackerService"
            android:enabled="true"
            android:exported="false"/>

 

6 yıl 7 ay önce yanıtladın

Node.js arka planda çalıştırma

Merhabalar node.js ' te çalışmaya başladım. Henüz yeniyim consolden .js uzantılı dosyamı çalıştırıyorum sıkıntı yok. Ancak control paneli kapatınca web sayfam açılmıyor. Bunun çözümünü forever kullanark buldum . Ancak bilgisayarı restart edince otomatik olarak çalışmıyor. node.js uygulamasının servisini sürekli olarak backgrounda çalıştırabilir miyiz ?

6 yıl 11 ay önce yanıtladın

Firebase Notification Göndermiyor

Merhaba arkadaşlar firebase ile uygulamaya notification göndermeye calısıyorum ancak bildirim gelmiyor Firebase console den bildirim gonderemiyorum . Android tarafında tüm işlemleri doğru eksiksiz bir biçimde gercekleştirdim json dosyasını kontrol ettim uygulamam package isimleri falan hersey doğru. Böyle bir durum ile  karsılasan oldumu? Kolay Gelsin . İyi Çalısmalar

7 yıl 1 ay önce yanıtladın

Notification Gruplama

Merhabalar firebase kullanarak android cihazıma bildirim gonderebiliyorum çok güzel . Ancak birden fazla bildirim gonderince  alt alta örneğin 4 tane bildirim geliyor bu da ekran goruntu kirliliğine neden olmaktadır. Whatsapp gibi gelen bildirimleri gruplayabilir miyim?. Böyle birşey yapabilmiş olan var mı yada ornek yada tutorial olan var mıdır ? Kolay Gelsin 

7 yıl 1 ay önce yanıtladın

Notification Gönderme Tüm Platformlar

Merhabalar web uygulamamda olusturduğum yeni kayıtların yada silme işlemlerin web api kullanarak android ve ios platformlarına bildirim gondermek istiyorum.  GCM' e baktım firebase kullanmamızı öneriliyor. Firebase yada GCM kullarak android ve ios a bildirim gönderdiniz mi ?  Elinde bu tarz ornek yada tutorial olan varsa paylaşırsanız sevinirim . Kolay gelsin

7 yıl 1 ay önce yanıtladın

Firebase Notification Göndermiyor

28 Şubat 2017 tarihinde cevaplandı

Merhabalar hatayı şu şekilde çözdüm AndroidManifest.xml dosyasında bulunan   tagına  tools:node="merge" satırını ekleyerek çözüme ulaştım.
 

<application>
tools:node="merge"

</applicatioon>

Firebase Notification Göndermiyor

27 Şubat 2017 tarihinde cevaplandı

Selam Rahmican dediğin gibi tekrar 3 kere kontrol ettim  gradle manifest dosyamı firebase servislerini herseyi kontrol ettim . 
FirebaseInstanceId.getInstance().getToken(); metodunda herzaman null geliyor . Ayrıca firebase türkceleştirilmesi için gosterdiğin çabayıda tebrik ediyorum Kolay Gelsin 

Volley kullanımı android

20 Ocak 2017 tarihinde cevaplandı

Selam Ulaş cok tesekkur ederim yanıt verdiğin için retrofiti inceledim ancak aklıma takılan bir durum olustu.Retrofit response lerinde pojo sınıfı kullanmak zorunlumu yani ben gelen yanıtın hepsini string olarak alıp  jsonobject içerisine aktarıp ihtiyacım olanı kullnmak istiyorum . Pojo sınıfı olusturmadan retrofit kullanmak mumkun mudur?

Swipe-Listview

23 Aralık 2016 tarihinde cevaplandı

Merhaba Ali tesekkur ederim ilgilendiğin için  play store linkinin içerisinde libray adresi verilmiş   bu adresi indirmeye calıstıgımda github tan kaldırılmıs Library:
https://github.com/47deg/android-swipelistview  internette aradım ancak bunu bulamadım   

Kolay Gelsin

android butona tıklayınca ses problemi

24 Mayıs 2016 tarihinde cevaplandı

Merhabalar  kodum bu şekildedir


public class MainActivity extends Activity {
	private ListView listView;
	private RelativeLayout listbtn;
	
	  MediaPlayer mp;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		setContentView(R.layout.login);
		
		
		listbtn = (RelativeLayout)findViewById(R.id.btn_login);
		
		mp=	MediaPlayer.create(MainActivity.this,R.raw.button_sound);
		
		listbtn.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				
				mp.start();
				
			}
		});
		}
}