安卓打電話,發簡訊
版權宣告:本文可能為博主原創文章,若標明出處可隨便轉載。 https://blog.csdn.net/Jailman/article/details/78027636
類
package online.geekgalaxy.layoutlearn;
import android.Manifest;
import android.app.Activity;
import android.app.PendingIntent;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.ActivityCompat;
import android.telephony.SmsManager;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* Created by jailman on 2017/9/18.
*/
public class login extends Activity {
public void SendSMS(String PhoneNumber, String SMS) {
SmsManager sm = SmsManager.getDefault();
if (isPhoneNumberValid(PhoneNumber) && isWithin70(SMS)) {
/**
* 當兩個判定條件都通過時傳送簡訊,先構建一個PendingIntent物件並使用getBroadcast()廣播
* 然後將PendingIntent,簡訊,電話號碼等內容傳入SmsManager的sendTextMessage()方法中*/
try {
PendingIntent pi = PendingIntent.getBroadcast(login.this, 0, new Intent(), 0);
sm.sendTextMessage(PhoneNumber, null, SMS, pi, null);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Toast.makeText(login.this, "簡訊傳送成功", Toast.LENGTH_LONG).show();
} else {
if (!isPhoneNumberValid(PhoneNumber)) {
if (!isWithin70(SMS)) {
Toast.makeText(login.this, "電話號碼格式錯誤!簡訊內容超過70個字!請改正!!!", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(login.this, "電話號碼格式錯誤!請改正!!!", Toast.LENGTH_LONG).show();
}
} else {
if (!isWithin70(SMS)) {
Toast.makeText(login.this, "簡訊內容超過70個字!請改正", Toast.LENGTH_LONG).show();
}
}
}
}
//判斷簡訊內容是否超過70個字
public static boolean isWithin70(String s) {
return s.length() <= 70;
}
//判斷電話號碼的格式是否正確
public static boolean isPhoneNumberValid(String phoneNumber) {
boolean valid = false;
/**
* 兩種電話號碼格式
* ^\(? 表示可以以(開頭
* (\d{3}) 表示後面緊跟3個數字
* \)? 表示可以以)繼續
* [- ]? 表示在上述格式後面可以使用選擇性的“-”繼續
* (\d{4}) 表示後面緊跟4個數字
* [- ]? 表示在上述格式後面可以使用選擇性的“-"繼續
* (\d{4})$ 表示以4個數字結束
* 綜上所述:正確的電話號碼的格式可以以下面等幾種做為參考:
* (123)456-78900 123-456-78900 12345678900 (123)-456-78900
* */
String expression01 = "^\(?(\d{3})\)?[- ]?(\d{4})[- ]?(\d{4})$";
String expression02 = "^\(?(\d{3})\)?[- ]?(\d{5})[- ]?(\d{5})$";
//建立Pattern物件
Pattern p01 = Pattern.compile(expression01);
//將Pattern作為引數傳入Matcher,當做電話號碼phoneNumber的正確格式
Matcher m01 = p01.matcher(phoneNumber);
Pattern p02 = Pattern.compile(expression02);
Matcher m02 = p02.matcher(phoneNumber);
valid = m01.matches() || m02.matches();
return valid;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
//sms button
final Button bomb = (Button) findViewById(R.id.button4);
bomb.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String PN = "13xxxxxxx";
String SMS = "我要用簡訊轟炸你!這個是安卓發簡訊功能!";
SendSMS(PN, SMS);
}
});
//call button
final Button call = (Button) findViewById(R.id.button5);
call.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_CALL);
Uri data = Uri.parse("tel:" + "13xxxxxx");
intent.setData(data);
if (ActivityCompat.checkSelfPermission(login.this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
// TODO: Consider calling
// ActivityCompat#requestPermissions
// here to request the missing permissions, and then overriding
// public void onRequestPermissionsResult(int requestCode, String[] permissions,
// int[] grantResults)
// to handle the case where the user grants the permission. See the documentation
// for ActivityCompat#requestPermissions for more details.
Toast.makeText(login.this, "Call permission denied!", Toast.LENGTH_LONG).show();
return;
}
startActivity(intent);
}
});
}
}
相關文章
- Android Tips: 打電話和發簡訊Android
- HTML5呼叫手機發簡訊和打電話功能HTML
- [android]命令列向虛擬機器發簡訊打電話Android命令列虛擬機
- 移動端撥打電話和傳送簡訊按鈕
- a標籤的妙用-撥打電話、傳送簡訊、傳送郵件
- 微軟要把PC接管手機深入化,今後Win10可接打電話收發簡訊微軟Win10
- 打電話的原理
- 和家人打電話
- 能打電話的膝上型電腦,Windows 10 打電話不是夢!Windows
- web介面撥打電話Web
- YouGov:70%女性表示發簡訊或打電話是第一次約會最令人不快的行為Go
- 如何使用MacBook接打電話?Mac
- 樂訊通雲通訊:物聯網路卡是什麼,可以打電話嗎?
- [實戰] Android 撥打電話Android
- IP網路電話機★完全脫離電腦撥打網路電話
- Vibrant Media:資料顯示14%受訪者在上網時常被電話或簡訊所打斷
- google安卓推出手腕“手錶電話”Go安卓
- 對接電信發簡訊介面
- uniapp 實現打電話錄音功能APP
- mui點選訊息框的用法,及其點選呼叫按鈕撥打電話UI
- AI語音電話,打給異鄉的自己AI
- 微信小程式通過wx.makePhoneCall打電話微信小程式
- 初識Linux核心-和CMOS打電話Linux
- 最近app要加入一個打電話功能,如下APP
- 玩手機打電話識別監測系統
- 自動打電話軟體效果怎麼樣
- Zabbix整合Cloud Alert(睿象雲)實現電話簡訊預警Cloud
- 電話、簡訊成騷擾工具,“手機轟炸”防治難在哪?
- 法國新勞動法:下班後不得給員工打電話發郵件
- ios常用功能集合(本地郵件,本地簡訊,撥打電話,獲取聯絡人,加速器,藍芽,WKWebView,地圖)iOS藍芽WebView地圖
- 22.Prometheus告警之Alertmanager告警(二)-手機電話加簡訊告警Prometheus
- CSS3撥打電話動態圖示效果CSSS3
- 工信部發文將整治涉詐電話卡:打擊網路詐騙必須釜底抽薪
- 程式設計師打電話也能打出死迴圈?程式設計師
- 玩手機打電話行為識別檢測系統
- Android模似打電話程式實現 - Android移動開發技術文章Android移動開發
- 360構建全球最大的詐騙電話資料庫打擊電信詐騙資料庫
- 安卓開發:應用間通訊模式安卓模式