私は(合法的な)スパイプログラムを書いています。このプログラムをランチャーで非表示にします(アイコンが表示されないようにします)。 <category Android:name="Android.intent.category.LAUNCHER" />
からAndroidManifest.xml
行を削除しようとしましたが、ユーザーが最初の起動モード(設定)でアプリケーションを起動できません。誰がアイデアを持っていますか?
どうすればできますか?
アプリをサービスにする必要があります。 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);
}
}
削除する
<intent-filter >
<action Android:name="Android.intent.action.MAIN" />
<category Android:name="Android.intent.category.LAUNCHER" />
</intent-filter>
マニフェストファイルから
AndroidManifest.xmlファイルから<category Android:name="Android.intent.category.LAUNCHER"/>
を削除できます。
ただし、<category Android:name="Android.intent.category.LEANBACK_LAUNCHER"/>
を追加して、Android studioがアプリをコンパイルできるようにする必要があります(ランチャーからは隠されています):D