【发布时间】:2012-01-21 20:20:30
【问题描述】:
在我的应用程序中,我没有任何 UI 部分,因此我需要在设备上安装应用程序后立即启动服务。我看到很多链接,答案是不可能的,但我想这肯定是可能的。看看 Android Market 上的 PlanB 应用程序,它确实满足我的要求。下面是我的清单文件,我是如何尝试的,但根本没有调用服务。所以,让我知道在安装应用程序时启动服务的最佳方式是什么。
更新
我也尝试过使用android.intent.action.PACKAGE_ADDED,它可以很好地检测其他应用程序的包,但不能检测其自身。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.auto.start"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="8" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<application
android:icon="@drawable/ic_launcher" >
<service android:name=".MyService">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</service>
<receiver android:name=".BootUpReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
<category android:name="android.intent.category.DEFAULT"/>
<action android:name="android.intent.action.PACKAGE_INSTALL" />
<action android:name="android.intent.action.PACKAGE_ADDED" />
<data android:scheme="package"/>
</intent-filter>
</receiver>
</application>
</manifest>
【问题讨论】:
-
也许这篇文章会对你有所帮助:stackoverflow.com/questions/2227604/…?
-
@Lalit:调查从市场上推送安装应用程序会发生什么以及它可以做什么。某些事情正在触发 B 计划开始 - 它不会自动开始。我刚刚安装它,我想知道安装是否向他们的服务器发送了一些东西,然后向我的设备发送了一封电子邮件。
BroadcastReceiver监听来自特定电子邮件地址的传入电子邮件可用于启动Service。在那之后,我不太了解市场上的 PUSH 安装如何工作,或者它们如何在没有用户输入的情况下安装,因此无法进一步提供帮助。 -
@Lalit: 你好,你有没有找到第一次安装apk时启动服务的方法?
-
不,如果应用程序中没有任何 UI 部分,这是不可能的。
-
感谢您的快速响应。我还有一个疑问。那么是否可以在没有任何应用程序图标的情况下创建应用程序?意味着该应用程序仅包含广播接收器和服务。
标签: android android-layout android-emulator android-widget