2012-05-02 4 views
1

私は一度私はBOOT_COMPLETEインテントを得るサービスを開始したいと思います。 HTCエクスプローラには、「電源オフ」と「再起動」の2つのオプションがあります。私が '再起動'を使用するとき、私はBOOT_COMPLETEインテントを正しく取得しています。しかし、私が 'poweroff'を使用してBOOT_COMPLETEインテントを取得しないと、サービスを開始できません。彼らの意図は私がHTCでリブートした後にしか得ることができないのですか?再起動に 'poweroff'を使用すると、HTCでBoot_Completeインテントを取得する方法はありますか?

私はGoogleをサーフィンしていますが、ヒントが見つかりませんでした。私はこだわっています

私を助けてください、私はいくつかのHTCデバイスは、より深い冬眠のようなものである「高速ブート」機能を有効にすることができ、事前にマニフェストが、役に立たないで

+0

をすることができますあなたのマニフェストの受信機セクション全体と受信機で使用するコードを投稿してください。 –

答えて

8

おかげでこのコード<action android:name="android.intent.action.BOOT_COMPLETED"/>を使用しました実際の再起動ではないため、BOOT_COMPLETEインテントを与えるべきではありません。また、SDカードにアプリがインストールされていないことを確認してください。アプリがSDカードにBOOT_COMPLETEDを受け取らない可能性があります。

これも面白いかもしれません:

http://commonsware.com/blog/2011/07/13/boot-completed-regression-confirmed.html

http://arthurfmay.blogspot.jp/2011/06/broadcastreceiver-bootcompleted-and.html

そして特に "高速起動" オプションが記載されている場合、この:

http://groups.google.com/group/android-developers/browse_thread/thread/56562e4de4919dc6

編集:

どのように単に使用について:

Intent.ACTION_SCREEN_ON 

をそして、あなたはサービスが実行されているかどうかをチェックすることができます

public static boolean ServiceRunning(Context cx) 
{ ActivityManager manager = (ActivityManager) cx.getSystemService(Context.ACTIVITY_SERVICE); 
    for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) 
    { if ("<<<service name goes here>>>".equals(service.service.getClassName())) 
     { return true; 
     } 
    } 
    return false; 
} 

そして、それがない場合はそれを起動します。

public static void ServiceCheck(Context cx) 
{ if(ServiceRunning(cx) == false) 
    { Intent svc = new Intent(".<<<Servicename>>>"); 
     cx.startService(svc); 
     Log.i("Service-Check","Service Starting"); 
    } 
    else 
    { Log.i("Service-Check","Service Existing"); 
    } 
} 
+0

ありがとうございました。私はBoot_complete Intentを取得しているので、 'fast boot'オプションのチェックを外しました。しかし、私はHTCの欲望の '高速起動'オプションを無効にしてBoot_Completeを取得する方法をもう一つ必要とします。 – Vani

関連する問題