web-dev-qa-db-ja.com

Android非表示のアプリケーション

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

どうすればできますか?

22
TN888

アプリをサービスにする必要があります。 Androidがサービスコンポーネントを作成する方法は次のとおりです。

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

MobiWareでもこれを見つけました:

モバイルの使用状況を追跡したり、ユーザーに気付かれずにデータを収集したりしたい場合に役立ちます。

ステップ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>

カテゴリTAGを削除すると、アプリアイコンが表示されなくなります。これで、アクティビティはもう必要ありません。このセグメントを削除してください。トリガーを使用せずにアプリを実行する方法、またはアプリケーションの開始点を考えると思います。これが解決策です。

<!-- 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>

これにより、Receiverに記述されたコードがトリガーされ、サービスを実行して思考を実装できます。

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

この許可を追加する必要があります。

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

コードは、電話が再起動したときにのみ実行されます。

ステップ2.コードを書く

再起動すると、レシーバーが起動し、サービスを開始できます。

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

 }
31
Apollo SOFTWARE

削除する

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

マニフェストファイルから

3
xoq

AndroidManifest.xmlファイルから<category Android:name="Android.intent.category.LAUNCHER"/>を削除できます。

ただし、<category Android:name="Android.intent.category.LEANBACK_LAUNCHER"/>を追加して、Android studioがアプリをコンパイルできるようにする必要があります(ランチャーからは隠されています):D

2
GuruJeya