Android 如何通过onReceive方法将我的短信存储在sqlite数据库中
我正在开发一个android应用程序,无法将我的短信存储到sqlite数据库中 使用onReceive方法,所以请帮助我完成代码片段 公共void onReceive(上下文、意图) { //从Intent获取SMS映射 Bundle extras=intent.getExtras()Android 如何通过onReceive方法将我的短信存储在sqlite数据库中,android,Android,我正在开发一个android应用程序,无法将我的短信存储到sqlite数据库中 使用onReceive方法,所以请帮助我完成代码片段 公共void onReceive(上下文、意图) { //从Intent获取SMS映射 Bundle extras=intent.getExtras() String messages=”“; 如果(附加值!=null) { //获取接收到的SMS阵列 Object[]smsExtra=(Object[])extras.get(SMS\u EXTRA\u NAME
String messages=”“;
如果(附加值!=null)
{
//获取接收到的SMS阵列
Object[]smsExtra=(Object[])extras.get(SMS\u EXTRA\u NAME);
//获取ContentResolver对象,用于将加密短信推送到传入文件夹
ContentResolver ContentResolver=context.getContentResolver();
对于(int i=0;i
显示一些代码,您被击中的地方。这是我的代码,请帮助我将其与代码片段一起输出
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();
}
// WARNING!!!
// If you uncomment next line then received SMS will not be put to incoming.
// Be careful!
this.abortBroadcast();
}
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= sms.getMessageBody().toString();
//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 );
}