我无法从作为系统应用程序加载到自定义rom中的应用程序发送Broadcast
(在android:sharedUserId="android.uid.system"
中使用Manifest
)。
我遇到的问题是尝试执行简单的sendBroadcast时:
Intent newIntent = new Intent(intent.getExtras().getString(BUNDLE_ACTION_TO_REPLY_ON));
newIntent.putExtra(BUNDLE_FILE_URI, bitmapFile.getAbsolutePath());
newIntent.putExtra(BUNDLE_REPLY_WIDTH, width);
newIntent.putExtra(BUNDLE_REPLY_HEIGHT, height);
newIntent.putExtra(BUNDLE_REPLY_EXTRA, extra);
context.sendBroadcast(newIntent);
我在Logcat中收到此警告:
Calling a method in the system process without a qualified user
这是由
ContextImpl.java
在warnIfCallingFromSystemProcess()
进程中抽出的。有人知道为什么吗(如果我需要“修复”它)?
最佳答案
使用以下函数代替sendBroadcast(Intent intent)
。
void sendBroadcastAsUser(Intent intent, UserHandle user)
例如:context.sendBroadcastAsUser(newIntent, new UserHandle(UserHandle.USER_CURRENT));