Ben de MainActivity
ben buAndroid Kullanım veritabanı
DatabaseHelper TouliosDB=new DatabaseHelper(this);
ve üstü
TouliosDB = new DatabaseHelper(this);
Sonra sahip bir sınıf var SQLiteOpenHelper
uzanan bir veritabanı yardımcısı kullanan bir kod var tha, BroadcastReceiver
'u genişletiyor ve alınan sms verilerine dayanarak verileri içe aktarmaya ayarlıyorum. Kod, okuma sms kadar doğru çalışıyor ve verileri alıyor.
Sorunum, veritabanını MainActivity
'dan BroadcastReceiver
'a nasıl kullanacağımı bilmiyorum.
Bu
BroadcastReceiver sınıf ipublic class IncomingSMSReceiver BroadcastReceiver {
private static final String SMS_RECEIVED ="android.provider.Telephony.SMS_RECEIVED";
@Override
public void onReceive(Context _context, Intent _intent) {
if (_intent.getAction().equals(SMS_RECEIVED)) {
Bundle bundle = _intent.getExtras();
if (bundle != null) {
Object[] pdus = (Object[]) bundle.get("pdus");
SmsMessage[] messages = new SmsMessage[pdus.length];
for (int i = 0; i < pdus.length; i++)
messages[i] = SmsMessage
.createFromPdu((byte[]) pdus[i]);
for (SmsMessage message : messages) {
String strPhoneNo = message.getOriginatingAddress();
String msg = message.getMessageBody();
if (msg.startsWith("02"))
{
Toast.makeText(_context, "Whats up!!", Toast.LENGTH_LONG).show();
}
if (msg.startsWith("01")){
try {
final String[] temaxismeno_sms = msg.split(":");
//eisagoghfititi(String am,String onoma,String epitheto,String examino)
// temaxismeno_sms[0] einai o kodikos eisagoghs apo to menu
//boolean perastike = myDb.eisagoghfititi(temaxismeno_sms[1],temaxismeno_sms[2],temaxismeno_sms[3],temaxismeno_sms[4]);
//if (perastike=true){
//else
//{
// Toast.makeText(_context, "H eisagwgh apetixe", Toast.LENGTH_LONG).show();
class MyBroadcast extends BroadcastReceiver {
@Override
public void onReceive(final Context context, Intent intent) {
HandlerThread handlerThread = new HandlerThread("database_helper");
handlerThread.start();
Handler handler = new Handler(handlerThread.getLooper());
handler.post(new Runnable() {
@Override
public void run() {
DatabaseHelper TouliosDB = new DatabaseHelper(context);
TouliosDB.eisagoghfititi(temaxismeno_sms[1],temaxismeno_sms[2],temaxismeno_sms[3],temaxismeno_sms[4]);
// have more database operation here
}
});
}
}
Toast.makeText(_context, "Egine eisagwgh fititi!!", Toast.LENGTH_LONG).show();
String message1 = "H Eisagwgh egine sthn vash.";// minima pou tha stalthei
SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(strPhoneNo, null, message1, null, null);
Toast.makeText(_context, "O fititis idopiithike", Toast.LENGTH_LONG).show();
}
catch (Exception e)
{
Toast.makeText(_context, "SMS failed, please try again.",
Toast.LENGTH_LONG).show();
e.printStackTrace();
}
}}
}
}
}
}
Veritabanı kodu uzanır veritabanı TDB kullanmayı deneyin vardı olduğunu
package toulios.ptixiakh.toulios;
import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DatabaseHelper extends SQLiteOpenHelper {
public static final String DATABASE_NAME="Toulios.db";
public static final String TABLE_NAME="Foitites_table";
public static final String Col_AM="AM";
public static final String Col_ONOMA="ONOMA";
public static final String Col_EPITHETO="EPITHETO";
public static final String Col_EXAMINO="EXAMINO";
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, 1);
// SQLiteDatabase db=this.getWritableDatabase();
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table " + TABLE_NAME+"(AM INTEGER PRIMARY KEY,ONOMA TEXT,EPITHETO TEXT, EXAMINO INTEGER)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS"+TABLE_NAME);
onCreate(db);
}
public boolean eisagoghfititi(String am,String onoma,String epitheto,String examino)
{
SQLiteDatabase db=this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(Col_AM,am);
contentValues.put(Col_ONOMA,onoma);
contentValues.put(Col_EPITHETO,epitheto);
contentValues.put(Col_EXAMINO,examino);
long result = db.insert(TABLE_NAME,null,contentValues);
if(result == -1)
return false;
else
return true;
}
}
Herkesin kullanabileceği tek bir nesneyi tutmak için tekil desenini kullanın. –
Bana bir örnek verebilir misiniz? onu koymak ve nasıl çağırmak vardı? – Fmetal