我有BroadcastReciever
一个系统应用程序,我想发送一个Intent
到(用于测试目的,因为我正在修改该系统应用程序)。
系统应用程序的AndroidManifest.xml
外观如下:
<application android:label="@string/app_name">
<receiver android:label="StateReceiver" android:name=".abstractor.StateReceiver" android:enabled="true" android:exported="true">
<intent-filter>
<action android:name="com.sec.android.contextaware.HEADSET_PLUG" />
<action android:name="android.intent.action.LOCALE_CHANGED" />
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.bluetooth.headset.profile.action.CONNECTION_STATE_CHANGED" />
<category android:name="android.intent.category.HOME" />
</intent-filter>
</receiver>
<provider android:name=".manager.LoggingDataProvider" android:authorities="com.sec.android.contextaware.manager.LoggingDataProvider" />
</application>
我使用一个测试应用程序并检查目标系统应用程序是否确实可以通过以下方式接收该意图:
Intent intent = new Intent();
intent.setAction("com.sec.android.contextaware.HEADSET_PLUG");
PackageManager pm = getPackageManager();
for (ResolveInfo resolveInfo : pm.queryBroadcastReceivers(bt, 0)) {
Log.d("APP: ", resolveInfo.toString());
}
并获取ResolveInfo
系统应用程序的信息,因此它应该能够接收到意图。然后我通过以下方式广播意图:
sendBroadcast(intent);
然而,没有任何反应,没有收到意图。我可以完全控制目标系统应用程序的清单文件和代码。是否有可能以某种方式传达意图?设备已植根。