我有一个需要用户名和密码的android应用程序,我的服务器通过短信将用户名和密码发送到手机。
我正在寻找一种方法,我的应用程序可以通过该方式读取短信,并可以在设置中使用用户名和密码自动配置,而不是在设置中手动配置它!
答案 0 :(得分:2)
<强>的AndroidManifest.xml 强>
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<application android:icon="@drawable/ic_launcher" android:label="@string/app_name" >
<receiver android:name=".Receiver" >
<intent-filter >
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
</application>
<强> Receiver.java 强>
import java.util.ArrayList;
import android.content.Context;
import android.content.Intent;
import android.content.BroadcastReceiver;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.telephony.SmsMessage;
public class Receiver extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent) {
//---get the SMS message passed in---
Bundle bundle = intent.getExtras();
SmsMessage[] msgs = null;
if (bundle != null)
{
//---retrieve the SMS message received---
Object[] pdus = (Object[]) bundle.get("pdus");
msgs = new SmsMessage[pdus.length];
for (int i=0; i<msgs.length; i++)
{
msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);
checkSMS(context, msgs[i]);
}
}
}
void checkSMS(Context context, SmsMessage sms)
{
String msg = sms.getMessageBody().toString();
}
}
答案 1 :(得分:1)
使用高优先级的短信广播监听器和rcv检查它是否来自您的服务器用于发送短信的号码,如果是,则从短信文本中提取信息,并相应地更新您的应用程序的配置,您甚至可以如果你想要短信不应该在原生短信应用中显示
,请使用abortBroad cast方法