J'enregistre un BroadcastReceiver pour recevoir des SMS dans un SystemService, mais nous n'avons pas la permission "android.permission.RECEIVE_SMS". Alors, comment utiliser la permission dans le cadre android? Dans SystemService, son contexte provient de ActivityManagerService.main().Comment utiliser la permission dans le cadre android?
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;
}
Le SystemService s'exécute dans le cadre android, dont le contexte est le contexte système. Et il n'y a pas un AndroidManifest.xml – Yong
Il y en a probablement un quelque part, mais pas à la place d'une application sdk. –
Hm ouais j'ai mal compris ce que vous demandiez. Avez-vous essayé de fouiller dans la source pour comprendre comment les autres services "système" qui ont besoin d'autorisations les obtiennent? Même l'application MMS d'Android utilise uniquement un service normal avec des autorisations dans le manifeste. Voir cet article de Diane Hackborn: http://groups.google.com/group/android-porting/browse_thread/thread/f9a383ce949d1557 –