2013-01-07 7 views
19

私は(法的な)スパイプログラムを作成しています。ランチャーにこのプログラムを隠しておきたいです(アイコンが表示されないようにします)。 から<category android:name="android.intent.category.LAUNCHER" />行を削除しようとしましたが、最初の起動モード(設定)でアプリケーションを起動できません。誰がアイデアを持っていますか?Androidの隠しアプリ

どうすればいいですか?

答えて

31

あなたのアプリをサービスにする必要があります。あなたは携帯電話の使用状況を追跡したり、ユーザーの知識がなくても、いくつかのデータを収集し、これは役立つかもしれないしたい場合は

MobiWare上にもこれを見つけた

http://developer.android.com/guide/components/services.html

:ここではアンドロイドでは、サービス・コンポーネントを作成することに取るされます君は。

ステップ1:アイコンなしのアプリケーションを作成します。 通常、アクティビティはマニフェストで次のように宣言されます。

 <activity 
     android:label="@string/app_name" 
     android:name="org.security.tracker.Tracker-activity" > 
     <intent-filter > 
      <action android:name="android.intent.action.MAIN" /> 

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

カテゴリタグを削除すると、もうアプリケーションアイコンが表示されません。 今、もうアクティビティは必要ありません。このセグメントを削除してください。 あなたは、アプリケーションがトリガーなしでどのように動作するか、またはアプリケーションの開始点が何であるかを考えるかもしれません。 これが解決策です。

<!-- Start the Service if applicable on boot --> 
    <receiver android:name="org.security.tracker.ServiceStarter" > 
     <intent-filter > 
      <action android:name="android.intent.action.BOOT_COMPLETED" /> 
     </intent-filter> 
    </receiver> 

これは、あなたの思考を実装するためにサービスを実行することができます受信者で書かれたコードをトリガします。

<service android:name="org.security.tracker.serviceCode" /> 

あなたは電話でのみ再起動時

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 

あなたのコードが実行されると、この権限を追加する必要があります。

ステップ2. recevierがあなたのサービスを開始することができますが、発火する、再起動時にあなたのコード

を書きます。

class ServiceStarter extends BroadcastReceiver { 

@Override 
public void onReceive(Context _context, Intent _intent) { 

    Intent i = new Intent("com.prac.test.MyPersistingService"); 
    i.setClass(_context, ServiceCode.class); 
    _context.startService(i); 
    } 

} 
+6

Androidのスタジオがandroidmanifest – Plugie

+0

どのサービスで何LAUNCHERカテゴリをコンパイルしないだろうコードが実行され、アプリケーションを起動できない場合は、Androidスタジオのみが初めてコンパイルされません。 – abh22ishek

+0

一度だけアクティビティを開始するまでBroadcastReceiverでコールを受信しません。 –

3

あなたはAndroidManifest.xmlファイルから<category android:name="android.intent.category.LAUNCHER"/>を削除することができますマニフェストファイルから

+0

@AmitApollo、いいえサービスを作成する必要はありません。 – xoq

+5

アプリはどのように開始されますか? – Squonk

+2

@Squonk私は専門家ではないが、おそらく放送受信機ですか? –

0

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

を削除します。

しかし:)(まだランチャーから隠さ)のAndroidスタジオアプリをコンパイルすることができるようになりますよう<category android:name="android.intent.category.LEANBACK_LAUNCHER"/>を追加することを忘れないでください:そこにあればD

関連する問題