Ich registriere einen BroadcastReceiver, um SMS in einem SystemService zu empfangen, aber wir haben nicht die Berechtigung "android.permission.RECEIVE_SMS". So, wie man Erlaubnis innerhalb des Android-Rahmens verwendet? Im SystemService wird der Kontext von ActivityManagerService.main() abgerufen.Wie verwendet man die Berechtigung im Android-Framework?
public void setWindowManager(WindowManagerService wm) {
mWindowManager = wm;
}
public static final Context main(int factoryTest) {
AThread thr = new AThread();
thr.start();
synchronized (thr) {
while (thr.mService == null) {
try {
thr.wait();
} catch (InterruptedException e) {
}
}
}
ActivityManagerService m = thr.mService;
mSelf = m;
ActivityThread at = ActivityThread.systemMain();
mSystemThread = at;
Context context = at.getSystemContext();
m.mContext = context;
m.mFactoryTest = factoryTest;
PowerManager pm =
(PowerManager)context.getSystemService(Context.POWER_SERVICE);
m.mGoingToSleep = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "ActivityManager-Sleep");
m.mLaunchingActivity = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "ActivityManager-Launch");
m.mLaunchingActivity.setReferenceCounted(false);
m.mBatteryStatsService.publish(context);
m.mUsageStatsService.publish(context);
synchronized (thr) {
thr.mReady = true;
thr.notifyAll();
}
m.startRunning(null, null, null, null);
return context;
}
Der SystemService wird im Android-Framework ausgeführt, dessen Kontext der Systemkontext ist. Und es gibt kein AndroidManifest.xml – Yong
Dort ist wahrscheinlich irgendwo, nur nicht an der Stelle, die es für eine SDK-App wäre. –
Hm yeah Ich habe missverstanden was du verlangst. Haben Sie versucht, durch die Quelle zu stochern, um herauszufinden, wie andere "System" -Dienste, die Berechtigungen benötigen, sie bekommen? Sogar Androids eigene MMS-App verwendet nur einen normalen Dienst mit Berechtigungen im Manifest. Sieh diesen Beitrag von Diane Hackborn: http://groups.google.com/group/android-porting/browse_thread/thread/f9a383ce949d1557 –