android开机自启广播无效果的曲线解决方案

标签: android 开机 广播 | 发表时间:2015-10-04 23:24 | 作者:n.wang
出处:http://www.iteye.com
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="where.com.whereareyou">

    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <uses-sdk
        android:minSdkVersion="7"
        android:sharedUserId="android.uid.system" />
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@android:style/Theme.Holo.NoActionBar">
        <activity
            android:name="where.com.whereareyou.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="where.com.whereareyou.BootBroadcastReceiver">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
                <action android:name="android.media.AUDIO_BECOMING_NOISY" />
            </intent-filter>
        </receiver>
        <service android:name=".MyService"/>
    </application>
</manifest>


MyService
package where.com.whereareyou;

import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.util.Log;

/**
 * Created by Administrator on 2015-10-4.
 */
public class MyService extends Service {
    public final static String TAG = "MyService";

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        Log.e(TAG,"onStartCommand");
        return START_NOT_STICKY;
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        Log.e(TAG,"onDestroy");
    }

    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }
}


BootBroadcastReceiver
package where.com.whereareyou;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;

/**
 * Created by Administrator on 2015-10-4.
 */
public class BootBroadcastReceiver extends BroadcastReceiver {
    static final String TAG = "BootBroadcastReceiver";

    @Override
    public void onReceive(Context context, Intent intent) {
        Log.e(TAG, "BootBroadcastReceiver onReceive");
        if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED) ||  android.media.AudioManager.ACTION_AUDIO_BECOMING_NOISY.equals(intent.getAction())) {
            Log.e(TAG, "action=" + intent.getAction());
            Intent ootStartIntent = new Intent(context, MyService.class);
            context.startService(ootStartIntent);
        }
    }

}


如代码所示,Intent.ACTION_BOOT_COMPLETED表示boot启动完毕后,系统会发送一个广播过来,理论上确实可以接收到,大部分手机估计也都是可以的,但是就是有那么些手机rom被改得不可思议,非要加上个android.media.AudioManager.ACTION_AUDIO_BECOMING_NOISY才可以在开机的时候让系统执行Intent.ACTION_BOOT_COMPLETED广播的发送,根据LOG可以看出,以OPPO1107为例,系统是先发送了ACTION_AUDIO_BECOMING_NOISY后发送了ACTION_BOOT_COMPLETED,仅以此博,做个纪念

已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [android 开机 广播] 推荐:

android开机自启广播无效果的曲线解决方案

- - 移动开发 - ITeye博客
已有 0 人发表留言,猛击->> 这里<<-参与讨论. —软件人才免语言低担保 赴美带薪读研.

Android--一个好玩的应用程序/开机自启动

- - CSDN博客推荐文章
    这个例子实现了一个小程序,这个程序的特殊之处在于只要运行一次,然后它就会伴随着手机的启动而自己运行. 首先,为了捕捉手机启动的事件,我们需要在AndroidManifest.xml文件中添加如下的代码:. . .

下一个目标:广播

- yimin - It Talks-魏武挥的blog
从报纸杂志到书籍电视,传统媒体在全方位地受到数字媒体的冲击,数字革命的颠覆性正在横扫一切传统媒体的角落,现在看来,最后一个堡垒:广播业,也将迎来有力挑战. 美国著名传媒杂志《Media Life》在去年年底展望2011年全美传媒行业的时候,还很乐观地估计,广播行业将从09年的14%衰退中迎来复苏. 在当时,潘朵拉(Pandora.com)这类“网络电台”已经兴起,但该杂志依然满不在乎地说:“尽管Pandora互联网广播服务和其它网站可以依据个人喜好定制个性化网络电台服务,但那仍然属于小众市场.

Android 遥控车

- CasparZ - LinuxTOY
您确定您真的会用 Android 手机玩赛车. 16 岁的法国学生 Jonathan Rico 使用 Android 手机通过蓝牙实现了对改装玩具汽车的遥控. 操控的方式和那些标榜的智能手机游戏一样,使用重力感应,差别是这次控制的是现实世界中的遥控汽车. 收藏到 del.icio.us |.

Android免费?毛

- Ruby - FeedzShare
来自: 36氪 - FeedzShare  . 发布时间:2011年08月17日,  已有 2 人推荐. 微软CEO Steve Ballmer在预测竞争对手产品时通常口无遮拦. 比如他去年抨击Google的Android战略时,很多人都不屑一顾. 接着Android蚕食了微软的地盘,后来又开始侵犯苹果的地盘.

GetEd2k (Android应用)

- 某牢 - eMule Fans 电骡爱好者
GetEd2k是一个Android应用程序,作者是anacletus. 此应用可以帮助你把网页中的电驴(eDonkey) 链接添加到你个人电脑的电驴客户端里,不过前提是你的客户端开启了用于远程控制的Web interface(Web服务器,网页接口,Web界面),当然,eMule(电骡), MLDonkey 和 aMule 都支持该功能,所以这三种主流电驴客户端的用户都可以使用GetEd2k.

Android 4.0发布

- coofucoo - Solidot
Shawn the R0ck 写道 "2011年10月19日早上10点,谷歌与三星联手在香港发布了Android 4.0和Galaxy Nexus. " Android 4.0 的主要特性包括:更精细的UI,加强多任务和通知功能,锁屏下可打开摄像头和浏览通知,改进文本输入和拼写检查;增强视频录制和图像编辑功能,支持剪裁和旋转图片、消除红眼、添加效果等;面部识别解锁;Android Beam允许两台支持NFC的设备之间交换应用程序、联系人、音乐和视频;Wi-Fi Direct,蓝牙HDP,等等.

NoScript For Android发布

- John - Solidot
用于屏蔽脚本的浏览器流行扩展NoScript发布了Android版本. 开发者称已经在Firefox for Android测试过,此外也应该能工作在基于Maemo的设备上. 移动版NoScript可以帮助移动用户抵抗基于脚本的攻击. Android平台上的扩展功能和桌面版相似,允许用户对每个网站单独设置脚本执行许可.

Android入门:ContentProvider

- - ITeye博客
一、ContentProvider介绍. ContentProvider翻译为“内容提供者”;. 定义:指该应用包含一些方法,供外界访问,其他应用程序可以调用该方法,比如如果应用A创建了一个数据库“test.db”,默认是私有的,即其他应用程序不能对其进行操作,但是如果应用A使用了ContentProvider,则其他应用程序可以访问该数据库;.