ارسال SMS بدون ثبت در دیتابیس گوشی (حل شد)
همانطور که از عنوان مشخصه می خوام SMS بفرستم اما در INBOX گوشی ذخیره نشه.البته سرچ زدم و به این نتیجه رسیدم که از اندروید KITKAT به بعد فقط نرم افزار پیش فرض SMS قابلیت حذف پیام رو داره:
اینم منبع: http://stackoverflow.com/questions/25247303/android-delete-sms-messages-in-sent-box
البته تو Android Developer هم دیدم.
ولی مسئله اینه که نرم افزار بانک صادرات داره با SMS کار می کنه.
کسی می دونه نرم افزار صادرات چجوری کار می کنه؟
ضمن تشکر از Nosrati جواب ایشون کاملا درسته.
برای استفاده سایرین کد کامل رو اینجا هم می زارم:
برای ارسال می تونید از کد زیر استفاده کنید:
String messageText ="Body Message!";
String messageNumber="09361234567"; short SMS_PORT =8901;//اینجا می تونید از هر پورت دیگه ای استفاده کنیدSmsManager smsManager =SmsManager.getDefault(); smsManager.sendDataMessage(messageNumber,null, SMS_PORT, messageText.getBytes(),null,null);
SMS ای که با این روش ارسال می شه علاوه بر اینکه در Send گوشی فرستنده نمی آد در Inbox گوشی گیرنده هم نمیاد. برای اینکه بتونید در گوشی گیرنده SMS رو دریافت کنید باید Braoadcast مخصوص پورت داده شده به صورت زیر تعریف کنید:
1- تعریف dataSmsRecivver در manifest:
<receiverandroid:name=".SMSReceiver">
<intent-filter>
<actionandroid:name="android.intent.action.DATA_SMS_RECEIVED"/>
<dataandroid:scheme="sms"/>
<dataandroid:port="8901"/>
</intent-filter>
</receiver>
2- تعریف یک Broadcast جهت دریافت پیام:
public classSMSReceiverextends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
String recMsgString = "";
String fromAddress = "";
SmsMessage recMsg = null;
byte[] data = null;
if (bundle != null) {
Log.i("LOG", "bundle not null");
Toast.makeText(G.context, "bundle not null", Toast.LENGTH_LONG)
.show();
// ---retrieve the SMS message received---
Object[] pdus = (Object[]) bundle.get("pdus");
for (int i = 0; i < pdus.length; i++) {
recMsg = SmsMessage.createFromPdu((byte[]) pdus[i]);
try {
data = recMsg.getUserData();
} catch (Exception e) {
}
if (data != null) {
for (int index = 0; index < data.length; ++index) {
recMsgString += Character.toString((char) data[index]);
}
}
fromAddress = recMsg.getOriginatingAddress();
}
Log.i("LOG", "Text Recived :" + recMsgString + " from :"
+ fromAddress);
Toast.makeText(G.context, "SMS Received: " + recMsgString,
Toast.LENGTH_LONG).show();
}
}
}
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .