この記事では、主に Android の開発におけるテキスト メッセージを送信するための小さなプログラムの例を紹介します。この記事には、ブロードキャスト受信機を監視するテキスト メッセージを送信するサンプルのアップグレード バージョンも含まれています。
上の画像はコード構造図です。
それでは、具体的なコードを見てみましょう。
Send.java
package cn.com.sms.send; import java.util.ArrayList; import java.util.Iterator; import android.app.Activity; import android.app.PendingIntent; import android.content.Intent; import android.os.Bundle; import android.telephony.SmsManager; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class Send extends Activity { private String message; private String number ; private EditText editText; private EditText editText2; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); editText = (EditText) this.findViewById(R.id.number); editText2 = (EditText)this.findViewById(R.id.message); Button button = (Button)this.findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { number = editText.getText().toString(); message = editText2.getText().toString(); // 在LogCat中可以查看到number和message的相关信息 Log.i("number", number); Log.i("message", message); /*获取系统默认的信息管理器,一定要注意的是SmsManager是android.telephony.SmsManager;这和 *我们使用的版本有关,在 Android 2.0 以前 应该使用 android.telephony.gsm.SmsManager *Android 2.0 之后的版本应该用 android.telephony.SmsManager。 */ SmsManager smsManager = SmsManager.getDefault(); /*PendingIntent.getBroadcast返回一个用于广播的PendingIntent对象,类似于调用Content.sendBroadcast(); */ PendingIntent paIntent = PendingIntent.getBroadcast(Send.this, 0, new Intent("SMS_SENT"), 0); PendingIntent deliveryIntent = PendingIntent.getBroadcast(Send.this, 0, new Intent("SMS_DELIVERED"), 0); // smsManager.pideMessage有些时候短信如果超过了字数,我们就需要这个方法来帮我们拆分短信内容。 ArrayList<String> smses = smsManager.pideMessage(message); Iterator<String> iterator = smses.iterator(); while(iterator.hasNext()){ String temp = iterator.next(); //发送短信 smsManager.sendTextMessage(number, null, temp, paIntent, deliveryIntent); } // 弹出一个浮动框显示提示内容,Toast.LENGTH_LONG代表浮动框显示时间的长短 Toast.makeText(Send.this, "短信发送完成", Toast.LENGTH_LONG).show(); } }); } }
main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="欢迎使用短信发送器,请输入电话号码" /> <EditText android:id="@+id/number" android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="这里输入电话号码" /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="欢迎使用短信发送器,请输入短信内容" /> <EditText android:id="@+id/message" android:layout_width="fill_parent" android:layout_height="wrap_content" android:minLines="3" android:hint="这里输入短信内容" /> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="send" /> </LinearLayout>
AndroidManifest :
を呼び出します。ミニ プログラムと同様に、ここでは 2 つの AVD を開く必要があります機能テスト用。
テキストメッセージングアプリケーションのメインクラスはSmsManagerです。 Android 2.0 より前は、android.telephony.gsm.SmsManager を使用する必要があります
それ以降は、android.telephony.SmsManager を使用する必要があります。
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="cn.com.sms.send" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="8" /> <uses-permission android:name="android.permission.SEND_SMS"></uses-permission> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".Send" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
は、システムのデフォルト情報マネージャーを取得することを意味します
smsManager.sendTextMessage(destinationAddress 、scAddress、Text、SENTINTENT、DELIVERYINTENT)
- DestInationaddress: 対象の電話番号
-SCADDDRESS: サービスプロバイダーの SMS 番号センター番号 (チャイナモバイルの SMS センター番号など)、テストは記入できません。 :-テキスト: SMS コンテンツ-センテンテント: 送信-& gt; 中国移動-& gt; 送信または失敗を返すための信号の送信に失敗しました-& gt; : 送信-> 中国モバイル-& GT; 相手側がこの情報を受信したかどうか-> フォローアップ: この意図は SMS が受信されたかどうかのステータス情報です。相手(サプライヤーは正常に送信しましたが、相手は受信しませんでした)。
public
static
PendingIntent getBroadcast (Context context, int requestCode, Intent Intent, int flags)
Context.sendBroadcast()の呼び出しと同様に、ブロードキャストのPendingIntentを返します関数
インテントが使用されている ブロードキャストのインテント
フラグには、FLAG_ONE_SHOT、FLAG_NO_CREATE、FLAG_CANCEL_CURRENT
、FLAG_UPDATE_CURRENTが含まれます。これは、新しく作成されたPendingIntentを1回使用するように設定するために使用されます。ない場合は作成せず、現在の、
現在の情報など属性を更新します。
さらに、AndroidManifest.xmlでSMS送信許可を宣言する必要があります。
SmsManager smsManager = SmsManager.getDefault();
テキストメッセージ作成インターフェイスを表示:
SmsManager smsMgr = SmsManager.getDefault(); smsMgr.sendTextMessage(address, null, message, null, null);
メールを送信:
Uri smsToUri = Uri.parse("smsto://10086"); Intent mIntent = new Intent( android.content.Intent.ACTION_SENDTO, smsToUri ); startActivity( mIntent );
アップグレードバージョン:
Intent i = new Intent(Intent.ACTION_SEND); i.putExtra(Intent.EXTRA_EMAIL, address); i.putExtra(Intent.EXTRA_SUBJECT, filename); i.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + filename)); ; i.setType("text/csv"); startActivity(Intent.createChooser(i, "EMail File"));
main.xmlはAndroidManifest.xmlと前のコードと同じです。
registerReceiver() は、ブロードキャスト受信機を登録するために使用されます。このメソッドは Content で定義されます。
public abstract Intent registerReceiver(BroadcastReceiverReceiver,IntentFilter filter); システムがフィルターを満たすブロードキャストをクエリ
すると、それを受信機に教えて処理させます。通常、これは onReceive() メソッドで処理されます。
如果不是在代码中主动通过registerReceiver()进行注册,那么就要从AndroidManifest.xml进行配置,代码如下
<receiver android:name="类名"> <intent-filter> <action android:name="接收者中Intent参数的action属性" /> </intent-filter> </receiver>
这里需要注意,在配置文件中activity标签和receiver标签是平级的。
在模拟器中发送中文会接收方出现乱码的问题,但是在真机中,就不会出现乱码的情况了。所以开发者只需要正常开发短信功能,不需要编码转换。
以上がテキスト メッセージを送信するための Android の小さなプログラムのサンプル コードの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

WebStorm Mac版
便利なJavaScript開発ツール

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。
