AndroidManifest.xml

     我比较喜欢用bugger驱动的方式去学习,一个比较有目的性,二个感觉比看书很容易理解和记住。

     今天碰到个问题,想用BroadcastReceiver 收一条短信信息。

public void onReceive(Context context, Intent intent) {

Log.v("test", "i haved do");

// TODO Auto-generated method stub
if (intent.getAction().equals(strACT)) {

StringBuilder sb = new StringBuilder();
Bundle bundle = intent.getExtras();

SmsManager sms = SmsManager.getDefault();

if (bundle != null) {

Object[] pdus = (Object[]) bundle.get("pdus");
SmsMessage[] msg = new SmsMessage[pdus.length];

System.out.println(msg);

for (int i = 0; i < pdus.length; i++) {
msg[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
}

for (SmsMessage currMsg : msg) {
Log.d("test", currMsg.getDisplayMessageBody());

sb.append("From:");
sb.append(currMsg.getDisplayOriginatingAddress());
sb.append("\nMessage:");
sb.append(currMsg.getDisplayMessageBody());
}
}

中规中矩的写下了收短信的代码,结果test输不出来。

搞了好久,原来是因为忘记在AndroidManifest.xml中注册receive了。

顺便好好学习下这个文件。

AndroidManifest.xml 是一个包含了各种暴露的组件和对应的实现类,权限等等,还有一个是记录了启动位置,没有他程序根本就启动不起来,呵呵。

具体内容可以参考

 http://www.cnblogs.com/salam/archive/2010/09/22/1833080.html

http://hi.baidu.com/linghtway/blog/item/83713cc1c2d053170ff477a7.html

在编译过程中,第一步资源打包的时候就被aapt工具给执行了。

参考内容http://www.cnblogs.com/devinzhang/archive/2011/12/20/2294686.html

这样图一看,app的编译执行过程就明白了,manifest在第一步,所以很重要哦,该注册的没注册就跑不起来了。

原文地址:https://www.cnblogs.com/shenbin/p/2385002.html