- Beranda
- Komunitas
- Tech
- Programmer Forum
Cek Nomor pengirim SMS di android ada di contact atau tidak


TS
User telah dihapus
Cek Nomor pengirim SMS di android ada di contact atau tidak
Agan2 yang baik hatinya. 
Ane mau tanya tentang pemrograman android nih.
Ane lagi bikin aplikasi SMSReceiver. Nah setelah SMS diterima, nanti ada pengecekan nomor pengirim di contact list. Saat ini ane pakai Broadcastreceiver buat menerima SMS yang diterima, terus ane kirim nomor pengirim ke activity, buat di cek. Cek nomornya pake getResolver(). Nah setau ane itu harus dijalanin di activity.
Overall jalan sih, tapi ane pengennya search contactnya g di activity, karna itu munculin window aplikasinya. Jadi pengennya di background process aja search contact nya. Gimana ya gan.
Ini MainActivity Classnya
Ini Broadcast Receivernya gan
Help me gan..

Ane mau tanya tentang pemrograman android nih.
Ane lagi bikin aplikasi SMSReceiver. Nah setelah SMS diterima, nanti ada pengecekan nomor pengirim di contact list. Saat ini ane pakai Broadcastreceiver buat menerima SMS yang diterima, terus ane kirim nomor pengirim ke activity, buat di cek. Cek nomornya pake getResolver(). Nah setau ane itu harus dijalanin di activity.
Overall jalan sih, tapi ane pengennya search contactnya g di activity, karna itu munculin window aplikasinya. Jadi pengennya di background process aja search contact nya. Gimana ya gan.
Ini MainActivity Classnya
Code:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Bundle extras = getIntent().getExtras();
String phoneNumber = extras.getString("pn");
if (contactExists(phoneNumber) == true){
Log.d("Exist","The number exist");
}else{
Log.d("Exist","Not Exist");
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public boolean contactExists(String number) {
/// number is the phone number
Uri uri = Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI, Uri.encode(number));
ContentResolver contentResolver = getContentResolver();
Cursor contactLookup = contentResolver.query(uri, new String[] {BaseColumns._ID,
ContactsContract.PhoneLookup.DISPLAY_NAME }, null, null, null);
try {
if (contactLookup != null && contactLookup.getCount() > 0) {
contactLookup.moveToNext();
//String contactId = contactLookup.getString(contactLookup.getColumnIndex(BaseColumns._ID));
return true;
}
} finally {
if (contactLookup != null) {
contactLookup.close();
return false;
}
}
return true;
}
}
Ini Broadcast Receivernya gan
Code:
public class SMSReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
SmsMessage[] msgs = null;
String phoneNumber = "";
Boolean nama;
String str = "";
if(bundle != null){
Object[] pdus = (Object[]) bundle.get("pdus");
msgs = new SmsMessage[pdus.length];
for (int i=0; i<msgs.length; i++){
msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);
phoneNumber = msgs[i].getOriginatingAddress().toString();
str = msgs[i].getMessageBody().toString();
}
Intent broadcastIntent = new Intent(context, MainActivity.class);
broadcastIntent.putExtra("pn", phoneNumber);
context.startActivity(broadcastIntent);
str = str.toLowerCase();
str = str.replaceAll("([.?,;)!'\"/]+)", "");
String[] separated = str.split(" ");
String str2 = "";
StopList stoplist = new StopList();
for(String token : separated){
if (stoplist.stoplist(token)==true){
}else{
str2 += token + " ";
}
}
Log.d("SMSReceiver", str2);
this.abortBroadcast();
}
}
}
Help me gan..
0
847
4


Komentar yang asik ya
Urutan
Terbaru
Terlama


Komentar yang asik ya
Komunitas Pilihan