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

ارسال و دریافت پیامک


MR.B4A

سوال

سلام.

چه طوری میشه توی اندروید های جدید ارسال پیامک داشت؟

کتابخونه phonesms ظاهرا دیگه توی اندروید های بالا کاربردی نداره و باعث کرش کردن برنامه میشه.

ممنون میشم راهنماییم کنید.

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

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

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

سلام و درود. با استفاده از JavaObject متد زیر رو استفاده کنید برا ارسال sms حتما باید دسترسی رانتایم ارسال sms رو هم بگیرید.

import android.telephony.SmsManager;
import java.util.ArrayList;
public void sendSms(String number,String message){
      SmsManager smsManager=SmsManager.getDefault();
      ArrayList<String> messages=smsManager.divideMessage(message);
      smsManager.sendMultipartTextMessage(number,null,messages,null, null);
}

 

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

در ۱۴۰۰/۱۲/۱۷ در ۰۱:۱۲، batman۱۲۳ گفته است:

این کدای منه اما فورس کلوز میده:

Sub Globals
	Private txtbody As EditText
	Private txtnumber As EditText
	
	Private rp As RuntimePermissions
	Dim jo As JavaObject
End Sub

Sub Activity_Create(FirstTime As Boolean)
	Activity.LoadLayout("Layout")
	
	rp.CheckAndRequest(rp.PERMISSION_RECEIVE_SMS)
	rp.CheckAndRequest(rp.PERMISSION_READ_SMS)
	rp.CheckAndRequest(rp.PERMISSION_SEND_SMS)
End Sub

Sub Activity_PermissionResult (Permission As String, Result As Boolean)
	If Permission = rp.PERMISSION_SEND_SMS And Permission= rp.PERMISSION_READ_SMS And Permission= rp.PERMISSION_RECEIVE_SMS And Result = False Then
		Msgbox("شما اجازه دسترسی به ارسال پیامک را به این برنامه نداده اید و در اینصورت ممکن است برنامه به درستی کار نکنند","")
	End If
End Sub

Private Sub btnsend_Click
	jo.InitializeContext
	jo.RunMethod("sendSms",Array(txtnumber.Text,txtbody.Text))
End Sub

#If java{
import android.telephony.SmsManager;
import java.util.ArrayList;
public void sendSms(String number,String message){
      SmsManager smsManager=SmsManager.getDefault();
      ArrayList<String> messages=smsManager.divideMessage(message);
      smsManager.sendMultipartTextMessage(number,Null,messages,Null, Null);
	  
	 } 
	 #end if

اینم به مانیفست اضافه میکنم

AddPermission("android.permission.SEND_SMS")
AddPermission("android.permission.READ_SMS")
AddPermission("android.permission.RECEIVE_SMS")

 

این کدای منه اما فورس کلوز میده:

Sub Globals
	Private txtbody As EditText
	Private txtnumber As EditText
	
	Private rp As RuntimePermissions
	Dim jo As JavaObject
End Sub

Sub Activity_Create(FirstTime As Boolean)
	Activity.LoadLayout("Layout")
	
	rp.CheckAndRequest(rp.PERMISSION_RECEIVE_SMS)
	rp.CheckAndRequest(rp.PERMISSION_READ_SMS)
	rp.CheckAndRequest(rp.PERMISSION_SEND_SMS)
End Sub

Sub Activity_PermissionResult (Permission As String, Result As Boolean)
	If Permission = rp.PERMISSION_SEND_SMS And Permission= rp.PERMISSION_READ_SMS And Permission= rp.PERMISSION_RECEIVE_SMS And Result = False Then
		Msgbox("شما اجازه دسترسی به ارسال پیامک را به این برنامه نداده اید و در اینصورت ممکن است برنامه به درستی کار نکنند","")
	End If
End Sub

Private Sub btnsend_Click
	jo.InitializeContext
	jo.RunMethod("sendSms",Array(txtnumber.Text,txtbody.Text))
End Sub

#If java{
import android.telephony.SmsManager;
import java.util.ArrayList;
public void sendSms(String number,String message){
      SmsManager smsManager=SmsManager.getDefault();
      ArrayList<String> messages=smsManager.divideMessage(message);
      smsManager.sendMultipartTextMessage(number,Null,messages,Null, Null);
	  
	 } 
	 #end if

اینم به مانیفست اضافه میکنم

AddPermission("android.permission.SEND_SMS")
AddPermission("android.permission.READ_SMS")
AddPermission("android.permission.RECEIVE_SMS")

 

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

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

در ۱۴۰۰/۱۲/۱۲ در ۰۱:۳۹، batman۱۲۳ گفته است:

متن خطا تغییر کرد!!

untitled_frif.png

عزیز کلا تابعو ناقص کپی کردین. یه دونه { کم گزاشتین. قبل از #end if به این موارد دقت کنید

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

در ۱۴۰۰/۱۲/۱۰ در 23:37، محمدرضا شاهپیری گفته است:

سلام و درود. با استفاده از JavaObject متد زیر رو استفاده کنید برا ارسال sms حتما باید دسترسی رانتایم ارسال sms رو هم بگیرید.

import android.telephony.SmsManager;
import java.util.ArrayList;
public void sendSms(String number,String message){
      SmsManager smsManager=SmsManager.getDefault();
      ArrayList<String> messages=smsManager.divideMessage(message);
      smsManager.sendMultipartTextMessage(number,null,messages,null, null);
}

 

سلام استاد.

خب چه طوری باید ازش استفاده کرد؟

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

در ۱۴۰۰/۱۲/۱۱ در 01:03، batman123 گفته است:

سلام استاد.

خب چه طوری باید ازش استفاده کرد؟

سلام

اول از همه کدهای آقای شاهپیری رو بین دو ساب و داخل If Java قرار بدین.

کتابخونه JavaObject رو تیک بزنید.

Dim jo As JavaObject
jo.InitializeContext
jo.RunMethod("sendSms",Null)
لینک ارسال
به اشتراک گذاری در سایت های دیگر

در ۱۴۰۰/۱۲/۱۱ در ۱۳:۲۰، امیرحسین قاسمی گفته است:

سلام

اول از همه کدهای آقای شاهپیری رو بین دو ساب و داخل If Java قرار بدین.

کتابخونه JavaObject رو تیک بزنید.

Dim jo As JavaObject
jo.InitializeContext
jo.RunMethod("sendSms",Null)

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

jo.RunMethod("sendSms",Array("0912345678","test message"))

 

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

این کدای منه اما فورس کلوز میده:

Sub Globals
	Private txtbody As EditText
	Private txtnumber As EditText
	
	Private rp As RuntimePermissions
	Dim jo As JavaObject
End Sub

Sub Activity_Create(FirstTime As Boolean)
	Activity.LoadLayout("Layout")
	
	rp.CheckAndRequest(rp.PERMISSION_RECEIVE_SMS)
	rp.CheckAndRequest(rp.PERMISSION_READ_SMS)
	rp.CheckAndRequest(rp.PERMISSION_SEND_SMS)
End Sub

Sub Activity_PermissionResult (Permission As String, Result As Boolean)
	If Permission = rp.PERMISSION_SEND_SMS And Permission= rp.PERMISSION_READ_SMS And Permission= rp.PERMISSION_RECEIVE_SMS And Result = False Then
		Msgbox("شما اجازه دسترسی به ارسال پیامک را به این برنامه نداده اید و در اینصورت ممکن است برنامه به درستی کار نکنند","")
	End If
End Sub

Private Sub btnsend_Click
	jo.InitializeContext
	jo.RunMethod("sendSms",Array(txtnumber.Text,txtbody.Text))
End Sub

#If java{
import android.telephony.SmsManager;
import java.util.ArrayList;
public void sendSms(String number,String message){
      SmsManager smsManager=SmsManager.getDefault();
      ArrayList<String> messages=smsManager.divideMessage(message);
      smsManager.sendMultipartTextMessage(number,Null,messages,Null, Null);
	  
	 } 
	 #end if

اینم به مانیفست اضافه میکنم

AddPermission("android.permission.SEND_SMS")
AddPermission("android.permission.READ_SMS")
AddPermission("android.permission.RECEIVE_SMS")

 

این کدای منه اما فورس کلوز میده:

Sub Globals
	Private txtbody As EditText
	Private txtnumber As EditText
	
	Private rp As RuntimePermissions
	Dim jo As JavaObject
End Sub

Sub Activity_Create(FirstTime As Boolean)
	Activity.LoadLayout("Layout")
	
	rp.CheckAndRequest(rp.PERMISSION_RECEIVE_SMS)
	rp.CheckAndRequest(rp.PERMISSION_READ_SMS)
	rp.CheckAndRequest(rp.PERMISSION_SEND_SMS)
End Sub

Sub Activity_PermissionResult (Permission As String, Result As Boolean)
	If Permission = rp.PERMISSION_SEND_SMS And Permission= rp.PERMISSION_READ_SMS And Permission= rp.PERMISSION_RECEIVE_SMS And Result = False Then
		Msgbox("شما اجازه دسترسی به ارسال پیامک را به این برنامه نداده اید و در اینصورت ممکن است برنامه به درستی کار نکنند","")
	End If
End Sub

Private Sub btnsend_Click
	jo.InitializeContext
	jo.RunMethod("sendSms",Array(txtnumber.Text,txtbody.Text))
End Sub

#If java{
import android.telephony.SmsManager;
import java.util.ArrayList;
public void sendSms(String number,String message){
      SmsManager smsManager=SmsManager.getDefault();
      ArrayList<String> messages=smsManager.divideMessage(message);
      smsManager.sendMultipartTextMessage(number,Null,messages,Null, Null);
	  
	 } 
	 #end if

اینم به مانیفست اضافه میکنم

AddPermission("android.permission.SEND_SMS")
AddPermission("android.permission.READ_SMS")
AddPermission("android.permission.RECEIVE_SMS")

 

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

سلام

دوست عزیز اینکه میگین کتابخونه phone در اندرویدهای بالا هنگام ارسال sms باعث کرش برنامه میشه به این خاطر هست که شما دسترسی ارسال sms رو نمی گیرید.

کتابخونه های RuntimePermissions و phone رو تیک بزنین.

Sub Activity_Create(FirstTime As Boolean)
Dim r As RuntimePermissions
r.CheckAndRequest(r.PERMISSION_SEND_SMS)
	
Wait For Activity_PermissionResult (Permission As String, Result As Boolean)
If Result=False Then
	ToastMessageShow("دسترسی ارسال اس ام اس رد شد",False)
End If
End Sub

Sub Button1_Click
Try
	Dim sms As PhoneSms
	sms.Send("09111111111","hello")
Catch
	ToastMessageShow("دسترسی ارسال sms وجود ندارد",True)
End Try
End Sub

هنگام شروع برنامه (در Activity_Create) باید دسترسی ارسال اس ام اس گرفته بشه. بعدش وقتی روی دکمه Button1 کلیک شد در صورتی که دسترسی وجود داشته باشه اس ام اس ارسال میشه.

روی اندروید 11 هم به خوبی کار کرد!

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

در ۱۴۰۰/۱۲/۱۱ در 14:25، محمدرضا شاهپیری گفته است:

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

jo.RunMethod("sendSms",Array("0912345678","test message"))

 

متاسفانه ارور میده استاد

untitled_242v.png

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

در ۱۴۰۰/۱۲/۱۲ در ۰۰:۱۴، batman۱۲۳ گفته است:

متاسفانه ارور میده استاد

untitled_242v.png

کدها رو اشتباه گذاشتین به نظرم. کدهاتونو پیوست کنید

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

در ۱۴۰۰/۱۲/۱۲ در ۰۰:۳۳، محمدرضا شاهپیری گفته است:

کدها رو اشتباه گذاشتین به نظرم. کدهاتونو پیوست کنید

کل دستورات اینا هستن

Sub Globals
	Private txtbody As EditText
	Private txtnumber As EditText
	
	Dim jo As JavaObject
End Sub

Sub Activity_Create(FirstTime As Boolean)
	Activity.LoadLayout("Layout")

	jo.InitializeContext
End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)
	
End Sub

Private Sub btnsend_Click
	
	jo.RunMethod("sendSms",Array(txtnumber.Text,txtbody.Text))
End Sub

#If java
import android.telephony.SmsManager;
import java.util.ArrayList;
Public void sendSms(String number,String message){
      SmsManager smsManager=SmsManager.getDefault();
      ArrayList<String> messages=smsManager.divideMessage(message);
      smsManager.sendMultipartTextMessage(number,Null,messages,Null, Null);
	  #end if

 

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

در ۱۴۰۰/۱۲/۱۲ در ۰۰:۵۴، batman۱۲۳ گفته است:

کل دستورات اینا هستن

Sub Globals
	Private txtbody As EditText
	Private txtnumber As EditText
	
	Dim jo As JavaObject
End Sub

Sub Activity_Create(FirstTime As Boolean)
	Activity.LoadLayout("Layout")

	jo.InitializeContext
End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)
	
End Sub

Private Sub btnsend_Click
	
	jo.RunMethod("sendSms",Array(txtnumber.Text,txtbody.Text))
End Sub

#If java
import android.telephony.SmsManager;
import java.util.ArrayList;
Public void sendSms(String number,String message){
      SmsManager smsManager=SmsManager.getDefault();
      ArrayList<String> messages=smsManager.divideMessage(message);
      smsManager.sendMultipartTextMessage(number,Null,messages,Null, Null);
	  #end if

 

عزیز Public با p کوچیکه نه بزرگ

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

بایگانی شده

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

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

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