2013-04-15 4 views
13

मुझे एक ऐप से Broadcast भेजने में समस्या हो रही है जिसे एक कस्टम ऐप में सिस्टम एप के रूप में लोड किया जा रहा है (Manifest में android:sharedUserId="android.uid.system" का उपयोग करना)।एक सिस्टम ऐप में sendBroadcast का उपयोग करके

समस्या मैं हो रही है जब एक साधारण 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.javawarnIfCallingFromSystemProcess() प्रक्रिया में।

क्या कोई जानता है क्यों (और यदि मुझे इसे "ठीक करने" की आवश्यकता है)?

+0

क्या आप दिखा सकते हैं कि आपने संदर्भ कहां प्रारंभ किया है? – RvdK

+0

इसे ब्रॉडकास्ट रिसीवर के हिस्से के रूप में पारित किया गया है ('सार्वजनिक शून्य पर रिसीव (अंतिम संदर्भ संदर्भ, अंतिम इरादा इरादा)' – Graeme

+0

यह ब्रॉडकास्ट रिसीवर आपका सिस्टम ऐप है? – RvdK

उत्तर

9

भेजने के बजाय नीचे दिए गए फ़ंक्शन का उपयोग करें ब्रॉडकास्ट (इरादा इरादा)।

शून्य sendBroadcastAsUser (आशय आशय, UserHandle उपयोगकर्ता)

उदाहरण के लिए

,

context.sendBroadcastAsUser (newIntent, नई UserHandle (UserHandle.USER_CURRENT));

+0

इसका उपयोग पूर्व-स्थापित अनुप्रयोगों द्वारा नहीं किया जा सकता है, यहां पढ़ें: [लिंक] (http://goo.gl/J1GIXq) – MatPag

+0

@Mat: हां। यह केवल सिस्टम ऐप के लिए है। – sMiLo

+0

'UserHandle.USER_CURRENT' पैरामीटर क्या है? –

संबंधित मुद्दे