Androidデバイスの起動放送が届かない場合はどうすればいいですか?

2189 ワード

最近はandroidボードに力を入れていますが、開発時はコード量もページもソフトを作っている人に比べて少なくなっています.しかし、薄いところはハードウェアが不安定で、ソフトウェアのように私が1を書くのではなく、ハードウェアは1を書くことができますが、結果は0かもしれません.最近のビジネスでは、サイレントアップグレードと電源投入、または電源オフの自己起動の機能ポイントが予約されています.サイレントアップグレードはすでにテストが正しいので、後で専門的に1つ書いて話して、今日は電源を入れてから起動して、簡単に穴を覚えます.
まず、電源を入れるという行為は、間違いなくシステム放送があるに違いありません.その構想は、私たちのコードに放送を登録し、静的放送でこのことをすれば基本的にいいということです.次のサンプルコードは、BroadcastReceiverを継承し、androidを取得する固定的なactionを見つけます.intent.action.BOOT_COMPLETED、中で論理判断をすればいい.
public class BootCompleteReceiver extends BroadcastReceiver {

    public BootCompleteReceiver() {

    }

    //      
    @Override
    public void onReceive(Context context, Intent intent) {

        Logger.d(getClass().getSimpleName(),"       ");

        if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED")) {

            intent = context.getPackageManager().getLaunchIntentForPackage(context.getPackageName());

            intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);

            context.startActivity(intent);

        }
    }
}

それからリストのファイルの中で1波のコードに来て、静的な登録の方式を採用して、これはどうして静的に原因を言わないで、結局すべてレンガを運ぶ知人で、はは
 
            
                
            
        

それからrunを1本、1波テストすることができて、これで基本的に終わりました.以下にいくつかの小さな穴がありますが、androidボードの開発は相対的に自由ですが、rootが過ぎたので、最高の権限がありますが、基本的なコアロジックはソフトウェアと同じです.
1.一つの小さな穴は、放送を受けた後、アプリの論理を開く処理を処理するとき、Intentです.FLAG_ACTIVITY_NEW_TASK、これはとても重要で、きっと書くことを覚えていて、さもなくばプログラムは掛けます.cleanが書くかどうかについては、楽しくすればいいです.2.もう一つはコードは大丈夫、ラジオも登录したが、役に立たなかった.もう1つは古い携帯電話、またはandroidボードで、インストーラがsdカードに優先されています.波を設定したり、プロファイルを直接変更したりして、下図のようにします.

私がandroidボードを開発したのは、メモリカードが外に置かれていて、古い携帯電話と同じように、上記の問題が原因で、変更した後、瞬間的に飛び上がって、他のレンガを運んだ友达が他の問題があってこの放送が機能しない場合は、伝言を残して交流することができます.