TN8*_*888 22 hidden android launcher
我正在写一个(合法的)间谍程序.我想让这个程序隐藏在启动器上(这样就不会显示图标).我试图从中删除<category android:name="android.intent.category.LAUNCHER" />行AndroidManifest.xml,但是用户无法在第一个启动模式(配置)中启动应用程序.谁有任何想法?
我该怎么做?
Apo*_*ARE 31
您需要将您的应用程序变为服务.以下是Androids创建服务组件:
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>
Run Code Online (Sandbox Code Playgroud)
删除类别标签,你将不再获得应用程序图标.现在,你不再需要活动了.所以删除这一部分.你可能会想,应用程序如何在没有任何触发器的情况下运行,或者应用程序的起点是什么.这是解决方案.
<!-- 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>
Run Code Online (Sandbox Code Playgroud)
这会触发您在Receiver中编写的代码,您可以运行服务来实现您的想法.
<service android:name="org.security.tracker.serviceCode" />
Run Code Online (Sandbox Code Playgroud)
您需要添加此权限,
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
Run Code Online (Sandbox Code Playgroud)
您的代码仅在手机重新启动时运行.
第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);
}
}
Run Code Online (Sandbox Code Playgroud)
小智 5
<category android:name="android.intent.category.LAUNCHER"/>您可以从 AndroidManifest.xml 文件中删除。
但请记住添加,<category android:name="android.intent.category.LEANBACK_LAUNCHER"/>以便 Android studio 能够编译您的应用程序(但在启动器中隐藏):) :D
| 归档时间: |
|
| 查看次数: |
41722 次 |
| 最近记录: |