2015-11-05 2 views
2

Функция StartRecord(int requestCode, int resultCode, Intent data) в RecordService.cs нуждается в параметре Intent data, я не знаю, как передать шаблон намерения myIntent и получить намерение par в другом намерении.Как передать данные намерения с использованием другого намерения?

Не могли бы вы мне помочь? Благодаря!

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 

     if (requestCode != MPublicPar.PERMISSION_CODE) { 
      Log.e("Mycwcgr", "Unknown request code: " + requestCode); 
      return; 
     } 

     if (resultCode != RESULT_OK) { 
      Toast.makeText(this, "Screen Cast Permission Denied", Toast.LENGTH_SHORT).show(); 
      return; 
     } 


     Intent myIntent = new Intent(mContext,bll.RecordService.class); 

     myIntent.putExtra("requestCode", requestCode); 
     myIntent.putExtra("resultCode",resultCode); 
     //How to pass Intent data 

     startService(myIntent); 
    } 

RecordService.cs

public class RecordService extends Service { 

    private Handler handler; 

    private RecordHelper mRecordHelper; 
    private MPublicPar.RecordArg mRecordArg; 


    @Override 
    public IBinder onBind(Intent intent) { 
     // TODO Auto-generated method stub 
     return null; 
    } 

    @Override 
    public void onCreate(){ 
     handler = new Handler(); 
     ... 
    } 

    @Override 
    public int onStartCommand(Intent intent, int flags, int startId) { 

     int requestCode=intent.getIntExtra("requestCode",0); 
     int resultCode=intent.getIntExtra("resultCode",0); 
     ////How to retrieve Intent data    

     StartRecord(requestCode, resultCode, mydata); 

     return super.onStartCommand(intent, flags, startId); 
    } 


    public void StartRecord(int requestCode, int resultCode, Intent data){ 
     prepareRecorder(); 

     mMediaProjection = mProjectionManager.getMediaProjection(resultCode, data); 
     MediaProjectionCallback mMediaProjectionCallback = new MediaProjectionCallback(); 
     mMediaProjection.registerCallback(mMediaProjectionCallback, null); 

     mVirtualDisplay=createVirtualDisplay(); 

     mMediaRecorder.start(); 
    } 



} 
+0

Возможный дубликат [Как передавать данные между действиями в Android?] (Http://stackoverflow.com/questions/2091465/how-do-i-pass-data-between-activities-in-android) – starkshang

ответ

0

Вместо прохождения первого Intent данные, которые вы можете создать новое намерение и получить все дополнительные услуги от первого один

Intent myIntent = new Intent(mContext,bll.RecordService.class); 
myIntent.putExtras(data.getExtras()); 

// Add additional extras if you need to 
myIntent.putExtra(...,...); 
+0

Спасибо! но как я могу получить намерение? Для нормального параметра я могу использовать int resultCode = intent.getIntExtra ("resultCode", 0); – HelloCW

+0

Что бы вы использовали для первоначального намерения? Вы можете получить информацию из первоначального намерения, а затем создать новую и передать новую. –

+0

Спасибо! Мне нужно передать оригинальное намерение, я думаю, что mMediaProjection = mProjectionManager.getMediaProjection (resultCode, data) нуждается в оригинальном намерении – HelloCW

0

Вместо передавая объект намерения, вы можете передать соответствующие данные, которые вы хотите получить там, в следующем действии

Intent myIntent = new Intent(mContext,bll.RecordService.class); 

    myIntent.putExtra("requestCode", requestCode); 
    myIntent.putExtra("resultCode",resultCode); 
    myIntent.putExtra("intentData", data.getExtras()); 

    // or if you have some integer data in your data object or any other data you can simply 
    // pass that data rather than passing intent data 

    startService(myIntent); 
+0

Спасибо! но как я могу получить намерение? Для нормального параметра я могу использовать int resultCode = intent.getIntExtra ("resultCode", 0); – HelloCW

+0

intent.putExtra («намерение», данные); и получить его как намерение намерения = aim.getExtra (намерение, null); Я не тестировал его, но надеюсь, что так оно и будет работать, попробуйте и обновите меня –

+0

Спасибо! но я не думаю, что намерение.getExtra (намерение, null) может работать – HelloCW

Смежные вопросы