Je suis nouveau sur Android, j'ai besoin de votre aide. qu'est-ce que j'essaie d'afficher un nouveau message entrant sur la boîte de dialogue d'alerte ?? et faire cliquable le contenu "lien" dans le messagelien cliquable dans le message android
ce mon activité message
public class SecureMessagesActivity extends Activity implements OnClickListener, OnItemClickListener
{
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setTheme(android.R.style.Theme_Light);
setContentView(R.layout.main);
/**
* You can also register your intent filter here.
* And here is example how to do this.
*
* IntentFilter filter = new IntentFilter( "android.provider.Telephony.SMS_RECEIVED");
* filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY);
* registerReceiver(new SmsReceiver(), filter);
**/
this.findViewById(R.id.UpdateList).setOnClickListener(this);
}
ArrayList<String> smsList = new ArrayList<String>();
public void onItemClick(AdapterView<?> parent, View view, int pos, long id)
{
try
{
String[] splitted = smsList.get(pos).split("\n");
String sender = splitted[0];
String encryptedData = "";
for (int i = 1; i < splitted.length; ++i)
{
encryptedData += splitted[i];
}
String data = sender + "\n" + StringCryptor.decrypt(new String(SmsReceiver.PASSWORD), encryptedData);
Toast.makeText(this, data, Toast.LENGTH_SHORT).show();
}
catch (Exception e)
{
e.printStackTrace();
}
}
public void onClick(View v)
{
ContentResolver contentResolver = getContentResolver();
Cursor cursor = contentResolver.query(Uri.parse("content://sms/inbox"), null, null, null, null);
int indexBody = cursor.getColumnIndex(SmsReceiver.BODY);
int indexAddr = cursor.getColumnIndex(SmsReceiver.ADDRESS);
//int indexCont = cursor.getColumnIndex(SmsReceiver.READ);
if (indexBody < 0 || !cursor.moveToFirst()) return;
Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Simple Alert");
builder.setMessage("This is simple alert box");
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
dialog.dismiss();
}
});
smsList.clear();
do
{
String str = "Sender: " + cursor.getString(indexAddr) + "\n" + cursor.getString(indexBody);
smsList.add(str);
}
while(cursor.moveToNext());
ListView smsListView = (ListView) findViewById(R.id.SMSList);
smsListView.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, smsList));
smsListView.setOnItemClickListener(this);
}
public void DisplayAlert() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Simple Alert");
builder.setMessage(R.string.app_name);
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
dialog.dismiss();
}
});
AlertDialog alert = builder.create();
alert.show();
}
mon smsReceive.java
public class SmsReceiver extends BroadcastReceiver
{
// All available column names in SMS table
// [_id, thread_id, address,
// person, date, protocol, read,
// status, type, reply_path_present,
// subject, body, service_center,
// locked, error_code, seen]
public static final String SMS_EXTRA_NAME = "pdus";
public static final String SMS_URI = "content://sms";
public static final String ADDRESS = "address";
public static final String PERSON = "person";
public static final String DATE = "date";
public static final String READ = "read";
public static final String STATUS = "status";
public static final String TYPE = "type";
public static final String BODY = "body";
public static final String SEEN = "seen";
public static final int MESSAGE_TYPE_INBOX = 1;
public static final int MESSAGE_TYPE_SENT = 2;
public static final int MESSAGE_IS_NOT_READ = 0;
public static final int MESSAGE_IS_READ = 1;
public static final int MESSAGE_IS_NOT_SEEN = 0;
public static final int MESSAGE_IS_SEEN = 1;
// Change the password here or give a user possibility to change it
public static final byte[] PASSWORD = new byte[]{ 0x20, 0x32, 0x34, 0x47, (byte) 0x84, 0x33, 0x58 };
public void onReceive(Context context, Intent intent)
{
// Get SMS map from Intent
Bundle extras = intent.getExtras();
String messages = "";
if (extras != null)
{
// Get received SMS array
Object[] smsExtra = (Object[]) extras.get(SMS_EXTRA_NAME);
// Get ContentResolver object for pushing encrypted SMS to incoming folder
ContentResolver contentResolver = context.getContentResolver();
for (int i = 0; i < smsExtra.length; ++i)
{
SmsMessage sms = SmsMessage.createFromPdu((byte[])smsExtra[i]);
String body = sms.getMessageBody().toString();
String address = sms.getOriginatingAddress();
messages += "SMS from " + address + " :\n";
messages += body + "\n";
// Here you can add any your code to work with incoming SMS
// I added encrypting of all received SMS
putSmsToDatabase(contentResolver, sms);
}
// Display SMS message
// Toast.makeText(context, messages, Toast.LENGTH_SHORT).show();
}
}
private void putSmsToDatabase(ContentResolver contentResolver, SmsMessage sms)
{
// Create SMS row
ContentValues values = new ContentValues();
values.put(ADDRESS, sms.getOriginatingAddress());
values.put(DATE, sms.getTimestampMillis());
values.put(READ, MESSAGE_IS_NOT_READ);
values.put(STATUS, sms.getStatus());
values.put(TYPE, MESSAGE_TYPE_INBOX);
values.put(SEEN, MESSAGE_IS_NOT_SEEN);
try
{
String encryptedPassword = StringCryptor.encrypt(new String(PASSWORD), sms.getMessageBody().toString());
values.put(BODY, encryptedPassword);
}
catch (Exception e)
{
e.printStackTrace();
}
// Push row into the SMS table
contentResolver.insert(Uri.parse(SMS_URI), values);
}
}
hey, pouvez-vous voir mon programme ?? – user1520642