標(biāo)題: Android開(kāi)發(fā)那些事(二) [打印本頁(yè)]
作者: jiege 時(shí)間: 2014-8-21 03:33
標(biāo)題: Android開(kāi)發(fā)那些事(二)
2013/5/5 星期日 傍晚
問(wèn)題產(chǎn)生:
在學(xué)校連WiFi上網(wǎng),有時(shí)信號(hào)不好或者人比較多,Zhbit和Zhbit2就連不上,但是CMCC 和CMCC-Auto通常還能連上,而且速度比前兩個(gè)都快,只是有點(diǎn)不好,每次接上的時(shí)候要申請(qǐng)動(dòng)態(tài)密碼(當(dāng)然也可以用靜態(tài)密碼,就不用每次都輸入,只是我不喜歡把密碼直接記錄在瀏覽器上),申請(qǐng)到的密碼通過(guò)短信發(fā)到手機(jī)上,由于不想打開(kāi)短信,而且信息的內(nèi)容會(huì)在通知欄上顯示,所以每次都在通知欄上看密碼,但是顯示
的時(shí)間很短,大概就一秒鐘,稍不留神就記錯(cuò),而且還要輸入,覺(jué)得特不方便。
問(wèn)題解決:
寫個(gè)小程序,能獲取有動(dòng)態(tài)密碼短信里面的6位WiFi密碼,并復(fù)制到剪貼板上,那樣就能直接在輸入框粘貼密碼就可以了。
分析:
1.發(fā)送WiFi動(dòng)態(tài)密碼的號(hào)碼都是10658029(不知道其他地方會(huì)不會(huì)不一樣),短信格式是:您申請(qǐng)的動(dòng)態(tài)密碼為:XXXXXX 只有密碼 是數(shù)字,那樣提取密碼就很簡(jiǎn)單了。
2. 靜態(tài)注冊(cè)BroadcastReceive廣播時(shí),系統(tǒng)收到短信就會(huì)自動(dòng)調(diào)用訂閱了接收短信的程序,所以不用為程序?qū)戦_(kāi)機(jī)啟動(dòng)。
程序代碼:
activity_main.xml
---------------------------------------------------------------------------------------------------------------------------------------------------------------
<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"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity"
android:orientation="vertical"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="歡迎使用本程序!" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="默認(rèn)號(hào)碼為10658029"
/>
</LinearLayout>
MainAcitiviy.java
---------------------------------------------------------------------------------------------------------------------------------------------------------------
package com.example.getwifipwd;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
myBroad.java
---------------------------------------------------------------------------------------------------------------------------------------------------------------
package com.example.getwifipwd;
import android.annotation.SuppressLint;
import android.content.BroadcastReceiver;
import android.content.ClipData;
import android.text.ClipboardManager;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.telephony.SmsMessage;
import android.util.Log;
import android.widget.Toast;
public class myBroad extends BroadcastReceiver {
// private static final String action =
// "android.provider.Telephony.SMS_RECEIVED";
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
SmsManager sms = SmsManager.getDefault();
Bundle bundle = intent.getExtras();
String to = null;
String Msg = null;
//讀取短信內(nèi)容
if (bundle != null) {
Object[] pdus = (Object[]) bundle.get("pdus");
SmsMessage[] messages = new SmsMessage[pdus.length];
for (int i = 0; i < pdus.length; i++)
messages[ i] = SmsMessage.createFromPdu((byte[]) pdus[ i]);
for (SmsMessage message : messages) {
Msg = message.getMessageBody();
to = message.getOriginatingAddress();
}
Log.i("手機(jī)號(hào)碼:", to);
Log.i("內(nèi)容:", Msg);
if (to.equals("10658029")) {
String Number = "";
//提取短信內(nèi)的動(dòng)態(tài)wifi密碼
for (int i = 0; i < Msg.length(); i++) {
if (Msg.charAt(i) >= '0' && Msg.charAt(i) <= '9') {
Number += Msg.charAt(i);
}
}
if (Number.length() == 6) {
Log.i("密碼", Number);
// 復(fù)制到剪貼板
ClipboardManager cmb = (ClipboardManager) context
.getSystemService(Context.CLIPBOARD_SERVICE);
// ClipData textCD = ClipData.newPlainText("stringText",
// Number);
// cmb.setPrimaryClip(textCD);
cmb.setText(Number);
Toast.makeText(context, "密碼:" + Number + "已復(fù)制到剪貼板",
Toast.LENGTH_LONG).show();
}
}
}
}
}
AndroidManifest.xml
---------------------------------------------------------------------------------------------------------------------------------------------------------------
增加接收短信權(quán)限:
<uses-permission android:/>
訂閱廣播:
<receiver android:>
<intent-filter>
<action android:></action>
</intent-filter>
</receiver>
效果:
在Uc瀏覽器上測(cè)試


作者: 紅塵有你 時(shí)間: 2015-12-23 10:55
牛人啊,我還不會(huì)ANDRID啊,高人求教!
歡迎光臨 (http://m.zg4o1577.cn/bbs/) |
Powered by Discuz! X3.1 |
主站蜘蛛池模板:
日本免费一级片
|
中文字幕不卡视频
|
97免费在线
|
欧洲一区二区三区
|
午夜无遮挡
|
香蕉视频免费
|
精品欧美黑人一区二区三区
|
蜜桃在线观看视频
|
三年中文在线看免费观看
|
欧美成人一区二区三区
|
超碰av在线
|
奇米av|
精品成人在线
|
日韩一区二区在线视频
|
欧美成人xxx
|
日本天堂在线
|
欧美黑人一区二区三区
|
日韩色网站
|
av久久久|
精品一区二区三区视频
|
在线观看视频一区二区三区
|
av资源在线|
男女啪啪免费
|
国产小视频在线播放
|
av手机在线看
|
欧美一区二区三区在线视频
|
一级肉体全黄裸片
|
日韩av中文字幕在线播放
|
久久久国产视频
|
一区二区三区黄色
|
成人免费毛片嘿嘿连载视频
|
亚洲精品a
|
亚洲影院av
|
久久久综合
|
国产99对白在线播放
|
亚洲一区二区三区在线播放
|
91久久久久久久久
|
国产亚洲欧美在线
|
日韩中文字幕免费
|
日韩伦理在线观看
|
蜜桃一区二区
|