我在写一个(合法的)间谍程序。我想让这个程序隐藏在启动器上(这样就不会显示图标)。我试图从AndroidManifest.xml
中删除<category android:name="android.intent.category.LAUNCHER" />
行,但之后用户无法在首次启动模式(配置)下启动应用程序。谁有什么想法?
我该怎么做呢?
发布于 2013-01-08 06:05:36
你需要将你的应用程序变成一项服务。下面是Androids创建服务组件的过程:
http://developer.android.com/guide/components/services.html
在MobiWare上也找到了这个:
当您想要跟踪手机的使用情况或在用户不知情的情况下收集一些数据时,这可能会对您有所帮助。
Step1:创建一个没有图标的应用程序。通常,在清单中按如下方式声明活动。
<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>
去掉Category标签,你再也看不到应用程序图标了。现在,你不再需要活动了。所以删除这段代码。BUt你可能会想,应用程序将如何在没有任何触发器的情况下运行,或者应用程序的起点是什么。这就是解决方案。
<!-- 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);
}
}
发布于 2017-07-31 18:05:49
您可以从AndroidManifest.xml文件中删除<category android:name="android.intent.category.LAUNCHER"/>
。
但请记住添加<category android:name="android.intent.category.LEANBACK_LAUNCHER"/>
,以便Android studio能够编译您的应用程序(但对启动程序隐藏) :) :D
发布于 2013-01-08 06:09:55
删除
<intent-filter >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
从清单文件中
https://stackoverflow.com/questions/14204720
复制相似问题