I sent intent to other package’s service. But, BroadcastReceiver couldn’t get intent.
A service
package com.android.server.bluetooth;
Intent intent = new Intent("BT_MODULE_ERROR");
intent.setComponent(new ComponentName("com.mobis.bluetoothexternal", "com.mobis.bluetoothexternal.BluetoothEngineeringService"));
intent.putExtra("ERROR_CNT", mErrorRecoveryRetryCounter);
mContext.sendBroadcast(intent);
B service – I added registerReceiver & Intentfilter
package com.mobis.bluetoothexternal;
private final BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Log.i(TAG, "onReceive");
if (intent.getAction().equals("BT_MODULE_ERROR")) {
int btDtcModuleCnt = intent.getIntExtra("ERROR_CNT", 0);
Log.i(TAG, "btDtcModuleCnt = " + btDtcModuleCnt);
}
}
};
@Override
public void onCreate() {
super.onCreate();
Log.i(TAG, "onCreate()");
registerBroadcastReceiver();
}
private void registerBroadcastReceiver() {
Log.i(TAG, "registerBroadcastReceiver");
IntentFilter filter = new IntentFilter();
filter.addAction("BT_MODULE_ERROR");
registerReceiver(broadcastReceiver, filter);
}
I don’t know why B service’s broadcastReceiver didn’t get “BT_MODULE_ERROR” intent.
I added B service’s AndroidManifest.xml