2016-08-21 90 views
0

我想知道有没有办法在android系统应用程序进程中执行代码。 我发现通过悬而未决的意图我们可以分配工作像报警经理或通知外国申请执行,但我还是发现工作中获得相同的应用程序执行。对于清醒的认识在系统进程中执行代码

在这里,我在ButtonClick事件创建警报管理器。

button.setOnClickListener(new View.OnClickListener() { 

    @Override 
    public void onClick(View arg0) { 
     Log.d("processstatus", "pid="+android.os.Process.myPid()); 
     //creating an alarm manager 
     alarmManager = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE); 
     Intent intent = new Intent(context, customreciever.class); 
     pendingIntent = PendingIntent.getBroadcast(context, 0, intent, 0); 
     alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP,SystemClock.elapsedRealtime() +10*1000, pendingIntent); 
    } 
}); 

通过下面的代码,我收到广播事件,它通过警报管理器每隔10秒触发一次。

public class customreciever extends BroadcastReceiver { 

    @Override 
    public void onReceive(final Context context, Intent intent) { 
    // Same app process id expecting alaramanager process id 
      Log.d("processstatus", "pid="+android.os.Process.myPid()); 
    } 
} 

的onReceive方法内我希望不同的进程ID不是应用其他process.if这是不可能通过悬而未决的意图,建议我任何其他的方法来实现这一目标。

回答

0

您无法在系统进程中运行代码。那将是一个巨大的安全漏洞。

使用PendingIntent,您可以委派触发代码到另一个用户/工艺/应用程序,但代码仍然使用您的用户ID和权限您的应用程序运行。