Kişisel Sayfaları
İlgi Alanları
İş Tecrubesi
Eğitim Geçmişi
Sertifikalar & Başarılar
Kullanıcıya ait test sonucu bulunmamaktadır.
Dil Becerileri
Son Forum Aktiviteleri
2Uygulama kapansada, servisi uyanık tutmak
Merhaba,
Aracımda RK3066 işlemcili bir android multimedia cihazı var. Direksyon tuşlarım kendi uygulamaları için sağlıklı çalışıyor fakat spotify,turkcell muzik yada ttnet müzikte çalışmıyor.Bu nedenle benimde aklıma tuşları yakalayıp Media_Next tuşunu taklit etmek geldi ki başarılı oldum. Fakat şöyle bir sorunum var; oluşturduğum servis ve broadcast receiver uygulama ekrandayken sağlıklı çalışıyor fakat faklı bir uygulamaya geçtiğimde yada launcher ekranına geldiğimde çalışmıyor.
Yaptığım işlemler: "ACTION_BOOT_COMPLETED" ile açılışta servisimi, servisimlede tuşları yakalayacağım BroadcastReceiver register ediyorum. Ardından gelen tuşun değerine göre benim istediğim tuşu taklit ediyorum. Kodlarımda aşağıdak gibidir. Bu servisi uygulama kapalı olsa bile ayakta tutmak istiyorum. Önerilerinizi bekliyorum
WscReceiver
package com.ford.swc;
import android.app.Instrumentation;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;
public class WscReceiver extends BroadcastReceiver {
public WscReceiver() {
}
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(Settings.MTCBroadcastIrkeyUp)) {
int keyCode = intent.getIntExtra("keyCode", 0);
Toast.makeText(context, Integer.toString(keyCode), Toast.LENGTH_SHORT);
if (Settings.MTCKeysPrev.contains(keyCode)) {
Toast.makeText(context, "<<", Toast.LENGTH_SHORT);
new Thread(new Runnable() {
@Override
public void run() {
try {
Instrumentation inst = new Instrumentation();
inst.sendKeyDownUpSync(88);
} catch (Exception e) {
}
}
}).start();
}
if (Settings.MTCKeysNext.contains(keyCode)) {
Toast.makeText(context, ">>", Toast.LENGTH_SHORT);
new Thread(new Runnable() {
@Override
public void run() {
try {
Instrumentation inst = new Instrumentation();
inst.sendKeyDownUpSync(87);
} catch (Exception e) {
}
}
}).start();
}
}
}
}
AndroidServiceStartOnBoot
package com.ford.swc;
import android.app.Service;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.IBinder;
import android.support.v7.app.AlertDialog;
import android.util.Log;
public class AndroidServiceStartOnBoot extends Service {
public AndroidServiceStartOnBoot() {
}
WscReceiver wsr;
@Override
public void onCreate() {
super.onCreate();
// here you can add whatever you want this service to do
Log.d("LOG", "AndroidServiceStartOnBoot");
IntentFilter intf = new IntentFilter();
intf.addAction(Settings.MTCBroadcastIrkeyUp);
wsr = new WscReceiver();
registerReceiver(wsr, intf);
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
}
BroadcastReceiverOnBootComplete
package com.ford.swc;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.widget.Toast;
public class BroadcastReceiverOnBootComplete extends BroadcastReceiver {
public BroadcastReceiverOnBootComplete() {
}
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equalsIgnoreCase(Intent.ACTION_BOOT_COMPLETED)) {
Toast.makeText(context, "BroadcastReceiverOnBootComplete Başladı", Toast.LENGTH_SHORT).show();
Intent serviceIntent = new Intent(context, AndroidServiceStartOnBoot.class);
context.startService(serviceIntent);
}
}
}
C# Windows Form uygulamasında vertabanına dosya kayetme
Aslında dosyayı veritabanına kaydetmek çok işimize gelmez çoğu zaman çünkü database çabucak şişecektir.Bunun yerine dosyaları Ftp yada bilgisayarda bir dizine aktarman ve bunun dosya yolunu veritabanına kaydetmen daha sağlıklı olacaktır. Ama ben genede kaydedeceğim dersen sanırım aşağıdaki örnek işini görecektir.
//Resimimizi FileStream metoduyla okuma modunda açıyoruz.
FileStream fs=new FileStream(resimPath,FileMode.Open,FileAccess.Read);
//BinaryReader ile byte dizisi ile FileStream arasında veri akışı sağlanıyor.
BinaryReader br = new BinaryReader(fs);
/*ReadBytes ile FileStreamde belirtilen resim dosyasındaki byte lar
byte dizisine aktarılıyor.
*/
byte[] resim = br.ReadBytes((int)fs.Length);
br.Close();
fs.Close();
//Sql Veritabanı ve Kayıt işlemleri
SqlConnection bag = new SqlConnection(@"Data Source=.\SQLEXPRESS;Initial Catalog=data;Integrated Security=True");
SqlCommand kmt = new SqlCommand("insert into resimbil(resim) Values (@image) ",bag);
kmt.Parameters.Add("@image", SqlDbType.Image, resim.Length).Value = resim;
try
{
bag.Open();
kmt.ExecuteNonQuery();
bag.Close();
*Kod alıntıdır