رفتن به مطلب
  • 0

کار با sms


berayan

سوال

سلام دوستان .

پوزش می طلبم از این که چند روزه زوم کردم رو پیام .

داخل انجمن رو کامل گشتم چیز زیادی پیدا نکردم . اگر لطف کنید و بگید چطوری می تونم پیام دریافت شده رو داخل نرم افزار نشون بدم ممنون می شم .

این کد دیدم اما سر در نیووردم چطوری ازش استفاده کنم .


[color=#ff8c00]Sub Message(Body As String)[/color]
Dim SmsMessages1 As SmsMessages
Dim List1 As List
List1 = SmsMessages1.GetAll
[color=#0000ff] For i = 0 To List1.Size - 1 [/color]
Dim Sms As Sms
Sms = List1.Get(i)
[color=#ff0000]If[/color] Sms.Body = Body [color=#ff0000]Then [/color]
Dim id As String = Sms.id
Dim addr As String = Sms.Address
Dim bd As String = Sms.Body
'hamin to ta akhar
[color=#ff0000]End If [/color]
[color=#0000ff]Next [/color]


[color=#ff8c00]End Sub[/color]


مثلا بخوام پیام دریافتی رو داخل یک EditText نمایش بدم چکار کنم .

لینک ارسال
به اشتراک گذاری در سایت های دیگر

19 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

دوستان یه سوال .

من از همین کد :

    x.send("0935......","salam" )  
   Msgbox("پیام","پیام با موفقیت ارسال شد")

برای ارسال پیامک استفاده می کنم . اما وقتی که برای ارسال پیامک روی دکمه کلیک میشه خود گوشی یه اخطار میاره روی گوشی که "نرم افزار میخواهد پیام ارسال کند اجازه میدهید ؟"

بعد هنوز تایید نکردم نرم افزار پیام رو ارسال میکنه پیغام با موفقیت ارسال شد هم میاره روی گوشی . اصلا محل نمیزاره که گوشی اول میخواد اجازه بگیره . باید چیکارش کرد ؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

برای حذف پیام از inbox چه کار کنیم ؟

 

حذف همه ی پیام ها :

Dim mensajes As SmsMessages
Dim list1 As List
Dim aa, Id As String
Dim sta, sto As Int
list1=mensajes.GetAll()
If list1.Size=0 Then Return
For i = list1.Size-1 To 0 Step -1
DoEvents
aa=list1.Get(i)
sta=aa.IndexOf("Id=")+3
sto=aa.IndexOf(", ThreadId=")
Id=aa.SubString2(sta,sto)
mensajes.deletesms(Id)
Next

منبع : b4x

لینک ارسال
به اشتراک گذاری در سایت های دیگر

برای استفاده از متن پیام باید از استفاده کنیدSms.Body

ولی باز من هنوز 2زاریم نیفتاده

Sms.Body چطوری به نرم افزار بفهمونم

اینو تو رویداد کلیک میزارم یه خط می کشه قرمز . خطا اعلام می کنه

Sms.Body رو هم که نمی شه از داخل تابع خودش ببری بیرون

اصلان من اینطوری گذاشتم ببینیت مشکل چیه


[/font][/color][/right]


Sub Process_Globals




End Sub


Sub Globals


Dim p As PhoneCalls
Private Button1 As Button
Private Label1 As Label
Private Button2 As Button
End Sub


Sub Activity_Create(FirstTime As Boolean)

Activity.LoadLayout("1")

End Sub


Sub Activity_Resume


End Sub


Sub Activity_Pause (UserClosed As Boolean)


End Sub


Sub Button1_Click

Dim s As String
s ="*720"&"%23"
Msgbox(s,s)
StartActivity(p.Call(s))

End Sub
Sub Message(Body As String)
Dim SmsMessages1 As SmsMessages
Dim List1 As List
List1 = SmsMessages1.GetAll
For i = 0 To List1.Size - 1
Dim Sms As Sms
Sms = List1.Get(i)
If Sms.Body = Body Then
Dim id As String = Sms.id
Dim addr As String = Sms.Address
Dim bd As String = Sms.Body
'hamin to ta akhar
Msgbox(Sms.Body,"ok")'???????????????????????
End If
Next
End Sub


Sub Button2_Click
Dim s As String


Msgbox(Sms.Body,"ok")'??????????????
End Sub

[right][color=#333333][font=Tahoma]


Message

لینک ارسال
به اشتراک گذاری در سایت های دیگر

کسری نعمتی مهمان

با سلام.بابت غیبت من تو انجمن از همه دوستان عرض میخوام یه سری مشکلات پیش اومده بود.

خب دوست عزیز این سورس که مقابل شما هست کاملا واضح همه چی توش هست و همونطور که دوست عزیزHamid گفتن متن این پیام Sms.Body هست.تو این سورس یه لیست تعریف شده که پیام های دریافتی بیان تو این لیست و شما میتونین مثلا بیارین تو لیست ویو.و گفتین که متن بیاد نو Edittext .اولا که نیاز نیست شما به نرم ازار sms.id و sms.address و sms.body رو بفهمونین ایناهر کدوم یکی از توابع کتابخونست.و در آخر کافیه شما Edittext.text رو = sms.body قرار بدین.سوالی بود در خدمتیم

لینک ارسال
به اشتراک گذاری در سایت های دیگر

از Send2 استفاده کنید بهتره.

اون کد رو هم میتونید کنترل کنید خودتون با شرط if

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام

خوب من دقیقا قبل از اینکه از مسیجباکس استفاده کنم همین کارو کردم در خود Message و در زیر کدها اما جواب نداد بعد هم به رویداد دکمه دادم بازم جواب نداد

حالا بازم تست می کنم شاید جایی اشتباه کردم .

تشکر

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام

دوست عزیز شما کافیه یک متغیر عمومی یا Public تعریف کنید و مقدارش رو برابر با Sms.Body کنید

سپس متغیر رو به پراپرتیس یک کنترل نسبت دهید.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

خوب از send2 استفاده کردم به جای قبلی . ولی با زهخون مشکل رو دارم . میشه شرط if رو بهم بگید . ممنون میشم .

لینک ارسال
به اشتراک گذاری در سایت های دیگر

شرط خاصی نداره همون Msgbox2 رو بنویس و شرط بزار که Positive رو اننخاب کردی بره Send کنه.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

آقا مجید . خود گوشی اخطار میده که نرم افزار میخواد پیامک ارسال کنه . نه اینکه من خودم بخوام به کاربر بگم میخوای بفرستی یا نه . خود گوشی .. این عکسش :

کلیک کن

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در در 1394/04/24, 14:38:19، مهدی ایزدی گفته است :

 

حذف همه ی پیام ها :


Dim mensajes As SmsMessages
Dim list1 As List
Dim aa, Id As String
Dim sta, sto As Int
list1=mensajes.GetAll()
If list1.Size=0 Then Return
For i = list1.Size-1 To 0 Step -1
DoEvents
aa=list1.Get(i)
sta=aa.IndexOf("Id=")+3
sto=aa.IndexOf(", ThreadId=")
Id=aa.SubString2(sta,sto)
mensajes.deletesms(Id)
Next

منبع : b4x

جنب ایزدی موقع فراخوانی این تابع.دقیقا وقتی که به خط list1=mensajes.getall() lمیرسه این ارور رو میده java.lang.NumberFormatException: Invalid int: "985000120200"

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

برا ارسال SMS ی کد خیلی ساده

وسایل مورد نیاز

یک عدد Button

دو عدد EditText

Sub Globals
Dim x As PhoneSms
   Private Button1 As Button
   Private EditText1,EditText2 As EditText
End Sub

Sub Button1_Click
   x.send(EditText1.Text,EditText2.Text )  
   Msgbox("پیام با موفقیت ارسال شد","ارسال شد")
   EditText1.Text = ""
   EditText2.Text = ""
   Button1.Enabled = False

End Sub

مشکل داشتین بگین

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 13 ساعت قبل، ehsan235 گفته است :

جنب ایزدی موقع فراخوانی این تابع.دقیقا وقتی که به خط list1=mensajes.getall() lمیرسه این ارور رو میده java.lang.NumberFormatException: Invalid int: "985000120200"

سلام باید کتابخانه smsPlus رو تیک بزنید.

در ضمن اصلا امکان حذف پیامک های صندوق از اندروید 4 و بالا تر وجود نداره. باید برنامتون بعنوان برنامه پیامک پیشفرض دستگاه تنظیم بشه و این مستلزم اجازه کاربر هستش.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 59 دقیقه قبل، پژمان نیکروان گفته است :

سلام باید کتابخانه smsPlus رو تیک بزنید.

در ضمن اصلا امکان حذف پیامک های صندوق از اندروید 4 و بالا تر وجود نداره. باید برنامتون بعنوان برنامه پیامک پیشفرض دستگاه تنظیم بشه و این مستلزم اجازه کاربر هستش.

سلام جناب نیکروان .من برنامم رو بعنوان پیشفرض قرار دادم و توحدف پیامهای دریافتی مشکلی ندارم

کتابخانه smsplus رو هم تیک زدم. موقعی که مسیج هارو با getallsince میگیرم.تا چند روز میتونم مسیج هارو تو لیست لود کنم.ولی وقتی به شماره های خاصی میرسه ارور میده .

لینک ارسال
به اشتراک گذاری در سایت های دیگر

شما بجای اون کد از این تابع استفاده کنید :

[/b]
[b]Sub SendSms(PhoneNumber As String, Text As String)[/b]
[b]    Dim r As Reflector[/b]
[b]    r.Target = r.RunStaticMethod("android.telephony.SmsManager", "getDefault", Null, Null)[/b]
[b]    r.RunMethod4("sendTextMessage", Array As Object(PhoneNumber, Null, Text, Null, Null), _[/b]
[b]        Array As String("java.lang.String", "java.lang.String", "java.lang.String", _[/b]
[b]            "android.app.PendingIntent", "android.app.PendingIntent"))[/b]
[b]End Sub

لینک ارسال
به اشتراک گذاری در سایت های دیگر

آقا مجید میشه یه توضیح مختصر راجع به این کدهایی که نوشتی بدی ؟ ممنون

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سورس کد خب میاد از کلاس های موجود در جاوا استفاده میکنه واس اس ام اس.

شما کافیه تابع رو تعریف کنید و هرجای برنامه اسفاده کنید ازش و 2 تا آرگومان داره یکی شماره و یکی متن دیگه

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...