您的位置:首页 > 移动开发 > Android开发

android开机启动接收广播和接收短信广播DEMO

2014-08-15 22:14 441 查看


MainActivity.java

package com.example.boottest;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

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;
	}

}


Boot.java

package com.example.boottest;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;

public class Boot extends BroadcastReceiver{
	public void onReceive(Context context,Intent intent){
		Toast toast = Toast.makeText(context, "已经接受到开机广播",Toast.LENGTH_LONG);
		 toast.show();
	}
}


AndroidManifest

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.boottest"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18" />

    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.boottest.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>

        </activity>
       <receiver android:name=".Boot" >
            <intent-filter android:priority="1000">
                <action android:name="android.intent.action.BOOT_COMPLETED"/>
            </intent-filter>
        </receiver>
    </application>

</manifest>


接收短信广播demo



MainActivity.java

package com.example.sms1;

import android.os.Bundle;
import android.app.Activity;
import android.content.IntentFilter;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		SMSreceiver myReceiver=new SMSreceiver();
		IntentFilter filter=new IntentFilter();
		filter.addAction("android.provider.Telephony.SMS_RECEIVED");
		filter.setPriority(Integer.MAX_VALUE);
		registerReceiver(myReceiver,filter);
	}

}


SMSreceiver.java

package com.example.sms1;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;

public class SMSreceiver extends BroadcastReceiver{
	public void onReceive(Context context,Intent intent){
		Toast toast = Toast.makeText(context, "收到了短消息:" +  
				 "123456",Toast.LENGTH_LONG);
		 toast.show();
		 
	}

}


AndroidManifest

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.sms1"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="19" />
        <uses-permission android:name="android.permission.SEND_SMS"/>
	<uses-permission  android:name="android.permission.RECEIVE_SMS"/>

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.sms1.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <receiver android:name=".SMSreceiver" >
            	<intent-filter  android:priority="800">
            	    <action android:name="android.provider.Telephony.SMS_RECEIVED"/>
            	</intent-filter>
        </receiver>
    </application>

</manifest>


开机启动那个安装完程序后需要启动一次,然后开机就可以收到广播

接收短信那个在程序中和配置文件中分别注册广播,前者是动态注册后者是静态注册,动态比静态的优先级高

两者的onReceive都是简单的提示,以表示收到广播,想要什么操作可以再方法里面自己写

以上两个程序分别在三星手机android2.3上和索尼android手机4.1.2上测试,都能成功

但是在红米手机上测试都不成功,不知道为什么
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐