我有一個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);
但是沒有任何反應,意圖沒有收到。我完全控制了目標系統應用程序的清單文件和代碼。是否有可能以某種方式獲得意圖? 設備已生根。
目標是ContextAwareService.apk,一種三星服務,它監聽某些事件並在通知欄中顯示內容。明天將嘗試你的建議,現在睡覺的時間。 ;) – rickythefox 2012-07-12 22:36:17
沒有工作。上面的AndroidManifest.xml來自目標,不應該能夠從任何人那裏接收「com.sec.android.contextaware.HEADSET_PLUG」嗎? – rickythefox 2012-07-13 09:48:53