2
我想在添加新包裹时显示通知。我发现清单文件需要的代码!我无法弄清楚的是如何捕捉我的服务内的广播。我怎样才能做到这一点?服务是否可以收到包裹。添加意向
我想在添加新包裹时显示通知。我发现清单文件需要的代码!我无法弄清楚的是如何捕捉我的服务内的广播。我怎样才能做到这一点?服务是否可以收到包裹。添加意向
你可以注册一个PACKAGE_INSTALL
和PACKAGE_ADDED
用于接收包的安装和卸载事件,然后开始你的Service(i.e IntentService)
从广播接收机的onReceive
为当增加一个新的软件包显示通知。
在的Manifest.xml:
<receiver android:name=".PackageReceiver">
<intent-filter>
<action android:name="android.intent.action.PACKAGE_INSTALL" />
<action android:name="android.intent.action.PACKAGE_ADDED" />
<data android:scheme="package"/>
</intent-filter>
</receiver>
在PackageReceiver
:
public class PackageReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(Intent.PACKAGE_INSTALL)) {
//START YOUR SERVICE HERE
}
}
}
或者你也可以在你的服务
br = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
//SHOW notification here or Start Notification Service
}
};
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(Intent.ACTION_PACKAGE_ADDED);
intentFilter.addAction(Intent.ACTION_PACKAGE_INSTALL);
intentFilter.addDataScheme("package");
registerReceiver(br, intentFilter);
我还挺需要第三种方法动态地注册一个接收器!谢谢! :) – 2012-07-15 05:29:57
我试过上面的代码,我发现一个错误。事情是,我无法在服务类中创建和添加意图过滤器!这有什么理由吗? – 2012-07-15 05:37:06
不,你可以创建和添加服务类内的意图过滤器确保你是'imporing import android.content.IntentFilter;'在你的服务包 – 2012-07-15 05:43:08