반응형
메시지 앱을 열지 않고 프로그래밍 방식으로 SMS 보내기
지금까지 내 앱을 통해 다른 전화로 SMS를 보내기 위해 다음 코드를 사용하고 있습니다.
Intent intent = new Intent( Intent.ACTION_VIEW, Uri.parse( "sms:" + srcNumber));
intent.putExtra( "sms_body", message );
startActivity(intent);
그러나 이렇게하면 기본 메시징 앱이 열리므로 내 앱의 활동이 백그라운드에있게됩니다. 기본 메시징 앱을 열지 않고 직접 SMS를 보낼 수 있습니까? 그렇다면 어떻게?
다음을 통해 애플리케이션에서 메시지를 보낼 수 있습니다.
public void sendSMS(String phoneNo, String msg) {
try {
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(phoneNo, null, msg, null, null);
Toast.makeText(getApplicationContext(), "Message Sent",
Toast.LENGTH_LONG).show();
} catch (Exception ex) {
Toast.makeText(getApplicationContext(),ex.getMessage().toString(),
Toast.LENGTH_LONG).show();
ex.printStackTrace();
}
}
또한 메시지를 보내려면 SEND_SMS
권한 을 부여해야 AndroidManifest.xml
합니다.
<uses-permission android:name="android.permission.SEND_SMS" />
public void sendLongSMS() {
String phoneNumber = "0123456789";
String message = "Hello World! Now we are going to demonstrate " +
"how to send a message with more than 160 characters from your Android application.";
SmsManager smsManager = SmsManager.getDefault();
ArrayList<String> parts = smsManager.divideMessage(message);
smsManager.sendMultipartTextMessage(phoneNumber, null, parts, null, null);
}
그리고 추가하는 것을 잊지 마세요
<uses-permission android:name="android.permission.SEND_SMS"/>
권한 요청과 함께 SMS 보내기 :
매니페스트 추가 :
<uses-permission android:name="android.permission.SEND_SMS" />
자바 기능 추가 :
void sendSmsMsgFnc(String mblNumVar, String smsMsgVar)
{
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.SEND_SMS) == PackageManager.PERMISSION_GRANTED)
{
try
{
SmsManager smsMgrVar = SmsManager.getDefault();
smsMgrVar.sendTextMessage(mblNumVar, null, smsMsgVar, null, null);
Toast.makeText(getApplicationContext(), "Message Sent",
Toast.LENGTH_LONG).show();
}
catch (Exception ErrVar)
{
Toast.makeText(getApplicationContext(),ErrVar.getMessage().toString(),
Toast.LENGTH_LONG).show();
ErrVar.printStackTrace();
}
}
else
{
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
{
requestPermissions(new String[]{Manifest.permission.SEND_SMS}, 10);
}
}
}
예, 내 질문에 대한 답을 찾았습니다. :)
동일하게 다음 코드를 사용하십시오.
SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(srcNumber, null, message, null, null);
Android 매니페스트 xml에 선언하려면 다음 권한이 필요합니다.
<uses-permission android:name="android.permission.SEND_SMS"/>
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(phoneNo, null, sms, null, null);
ReferenceURL : https://stackoverflow.com/questions/26311243/sending-sms-programmatically-without-opening-message-app
반응형
'Programing' 카테고리의 다른 글
AngularJS. (0) | 2021.01.06 |
---|---|
Elasticsearch "추가 된 요청 없음"대량 API 오류 (0) | 2021.01.06 |
Angular 2 구성 요소는 NgModule의 일부가 아닙니다. (0) | 2021.01.06 |
데이터 소스가 서버 측 데이터 페이징을 지원하지 않습니다. (0) | 2021.01.06 |
사무실없이 C #에서 Excel 파일 만들기 (0) | 2021.01.06 |