我在安装应用时添加了一个接收器来监听。但它没有用。这是AndroidManifest.xml中的代码
<receiver android:enabled="true"
android:exported="true"
android:name="com.bsp.iqtest.reiceiver.IQTestReceiver">
<intent-filter>
<action android:name="android.intent.action.PACKAGE_ADDED" />
<action android:name="android.intent.action.PACKAGE_REPLACED" />
<data android:scheme="package"/>
</intent-filter>
</receiver>
这是我在MainActivity(启动器活动)中的代码,函数onCreate。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
IQTestReceiver br = new IQTestReceiver();
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(Intent.ACTION_PACKAGE_ADDED);
intentFilter.addAction(Intent.ACTION_PACKAGE_REPLACED);
intentFilter.addDataScheme("package");
registerReceiver(br, intentFilter);
}
这是我在IQTestReceiver中的代码(此类用其他文件编写)
public class IQTestReceiver extends BroadcastReceiver {
public IQTestReceiver() {
}
@Override
public void onReceive(Context context, Intent intent) {
String packageName=intent.getData().getEncodedSchemeSpecificPart();
Log.e("HELLO",packageName);
}
}
我在onReceive函数中设置了一个断点,但是在调试时它没有运行。
感谢您的帮助。
答案 0 :(得分:1)
如果您正在尝试使用自己的应用,则不
}或PACKAGE_ADDED
。
“广播操作:设备上已安装新的应用程序包。数据包含软件包的名称。请注意,新安装的软件包不接收此广播。”
请参阅http://developer.android.com/reference/android/content/Intent.html
答案 1 :(得分:0)
将您的广播设置为清单
<receiver
android:name=".IQTestReceiver"
android:exported="true"
android:enabled="true">
<intent-filter>
<action android:name="check_values"/>
</intent-filter>
</receiver>
并像这样发送广播..... Intent it1=new Intent(Intent.ACTION_USER_PRESENT);
it1.setAction("check_values");
it1.putExtra("data_key1",message);
sendBroadcast(it1);
并且接收就像这样......
@Override
public void onReceive(Context context, Intent intent)
{
data1=intent.getStringExtra("data_key1");
System.out.println("ffffff11" + data1);
}