学习andriod开发之 自己开发短信发送软件
? ? ?短信大家都很常用 我們往往在發短信的時候 調用的是系統的發送短信 主要原理是發送一個意圖intent( 這個我們以后再說)
?其實我們可以自己寫一個短信發送軟件 想想是不是有點激動呢 撒 一起來開始吧
?首先 我們來做出短信發送的界面來 我們想想生活中是怎么發送短信的呢?
沒錯 需要號碼和內容和一個按鈕就行了 so easy
這就是我們的界面啦 是不是很簡潔呢 沒錯 簡潔才能上手快 不是么?
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity" android:orientation="vertical"><EditText android:hint="@string/sendnumber"android:id="@+id/et_tell"android:layout_width="match_parent"android:layout_height="wrap_content"/><LinearLayout android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="vertical"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/sendcontent" /><EditText android:hint="@string/sendsomething"android:id="@+id/et_content"android:layout_width="match_parent"android:layout_height="200dp"android:maxLines="10"/></LinearLayout><Button android:id="@+id/bt_send"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/send"/></LinearLayout>這里主要采用了做簡單的線性布局 你如果之前沒有接觸過布局的相對知識 就可以看成是一條直線可以了?
那么直線的話 有方向吧 沒錯 orientation就是我們的方向啦 有垂直和水平 我們按照效果就可以了?
這里面沒有什么新的東西 有一個maxLines這個你看意思也知道 是最大行數的意思 知道這些之后 上述布局文件理解起來就不難了
? ? 下面 我們既然完成了界面 肯定要搞定邏輯步驟不是么?
我們看下邏輯步驟的代碼
public class MainActivity extends Activity implements OnClickListener {private EditText et_tell;private EditText et_content;private Button bt_send;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);findview();setListener();}private void setListener() {bt_send.setOnClickListener(this);}private void findview() {et_tell = (EditText) findViewById(R.id.et_tell);et_content = (EditText) findViewById(R.id.et_content);bt_send = (Button) findViewById(R.id.bt_send);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.activity_main, menu);return true;}@Overridepublic void onClick(View v) {if(v.getId()==R.id.bt_send) {String number = et_tell.getText().toString();String content = et_content.getText().toString().trim();if(number==null||number.equals("")){showToast("請輸入號碼");return;}if(content==null||content.equals("")){showToast("請輸入發送內容");return;}sendMeesage(number,content);}}private void showToast(String content) {Toast.makeText(this, content, Toast.LENGTH_SHORT).show();}/*** 發送信息 核心方法* @param number* @param content*/private void sendMeesage(String number, String content) {SmsManager manager = SmsManager.getDefault();ArrayList<String> divideMessages = manager.divideMessage(content);manager.sendMultipartTextMessage(number, null, divideMessages, null, null);showToast("發送成功!");}}這里我已經寫好了一份 代碼理解起來很簡單 首先你要findview找到控件 其次設置監聽 setListener?
再次 就是核心方法 sendMessage了 這里 我們先拿到一個發送短信的管理者?
在andriod系統里 有各種各樣的管理者 以后我們會越來越多的接觸到?
拿到管理者之后 由于短信一次發送有限制 140字節 也就說是70個漢字 為了防止太多發不出去的情況?
我們用到了sendMutil...方法 這里面 第一個參數是號碼 其二是中心號碼 這里傳入null就可以了 其三就是內容了?
由于短信是拆分了的 所以是按照ArrayList來傳的 以下簡寫AL 傳入AL之后 后兩個是意圖和延時意圖?
如果你現在沒接觸過 你也能明白這兩者有什么區別吧 嘿嘿 以后再講?
之后就發送成功了?
對了! 忘了說 一定要在manifest中加上權限 不然發送肯定失敗?
在andriod中有各種各樣的權限 你以后就會知道啦?
發送權限的關鍵代碼
?<uses-permission android:name="android.permission.SEND_SMS"/>
好了 大功告成!?
下次我們繼續 咱一起進步?
總結
以上是生活随笔為你收集整理的学习andriod开发之 自己开发短信发送软件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TiDB 在安信证券资产中心与极速交易场
- 下一篇: 【高效复习】计算机网络重要概念总结