2 fengwuwuhen fengwuwuhen 于 2013.04.17 16:40 提问

JAR中注册BroadcastReceiver问题

我的BroadcastReceiver类名是net.push.MyReceiver,
在JAR的Mainfest里这样

<receiver android:name="net.push.MyReceiver" >
            <intent-filter>
                <action android:name="MyReceiver_Action" />
            </intent-filter>
        </receiver>

注册的BroadcastReceiver,Receiver没有办法接收广播.在引用这个JAR的项目的Mainfest里这样注册

     <receiver android:name="net.push.MyReceiver" >
            <intent-filter>
                <action android:name="MyReceiver_Action" />
            </intent-filter>
        </receiver>

就可以接收到广播
如何才能在JAR的mianfest里注册才能接收到广播

3个回答

usniyo
usniyo   2013.04.18 09:18

一个Android应用只有一个Mainfest文件,它只认那一个的,其它地方的它才不鸟呢。你想要在jar包里放一个Mainfest文件实现注册是不行的,除非你用java代码方式注册广播接收器。

loFataMer
loFataMer   2013.04.18 11:04

AndroidManifest.xml 是指定给一个应用,而不是一个jar。如果你想要接收成功,需要将声明放进应用Mainfest中,位于应用程序文件的根目录中。

Every application must have an AndroidManifest.xml file (with precisely that name) in its root directory

看这里:http://developer.android.com/guide/topics/manifest/manifest-intro.html

cjiiing
cjiiing   2013.04.18 14:02

前提是你的jar里有Activity或者Service,然后在它的Onstart和onResume方法里分别调用registerReciever和unRegisterReciever方法来动态注册广播

cjiiing
cjiiing 在manifest里面是不可能或者说很难,除非你改它的apk包,但是那样签名就不一致了,如果你很牛,会走后门那就另当别论
4 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!