2013-06-23 2 views
1

Я столкнулся с проблемой, когда мне нужно показать свое первое приложение в какой-то области экрана второго приложения. Оба кода находятся под моим контролем. Может ли кто-нибудь посоветовать мне, где мне следует продолжать, поскольку я не понимаю какой-либо ситуации.Один из представлений моего приложения внутри моего второго приложения в android

Если кто-то поможет мне в этом вопросе, это будет большой помощью для меня.

Или

Если я могу открыть оба моих приложений, использующих многоэкранное опция доступна в S3.

+0

"Мне нужно, чтобы показать мое первое приложение в какой-то области экрана второго приложения" - это вообще не возможно. Есть способы, которыми первое приложение может отправить «RemoteViews» во второе приложение, чтобы второе приложение отображало его, хотя это немного неудобно и ограничивает вас тем, что предлагает «RemoteViews». – CommonsWare

+0

@CommonsWare Прежде всего, я ожидал чего-то от этого от вас :) Как я могу достичь этого обмена мнениями? Также будут ли доступны данные, обновленные с этими представлениями? – skygeek

+0

Но это тоже не невозможно ... Я думаю! – skygeek

ответ

0

Напишите службу в любом из ваших приложений или в отдельном приложении. У вас есть AIDL (Язык определения интерфейса Android), определенный как IRemoteService.aidl, ниже приведен пример моего псевдокода или примера. Используя этот подход, вы можете запускать активность и обрабатывать события другого приложения через ваше приложение.

// IRemoteService.aidl 

// Declare any non-default types here with import statements 

/** Example service interface */ 
interface IAccountService { 
    String getLoggedInUserInfo(String appId);  
    void userLogin(String appId,ILoginCallback cb);  
    void signout(String appId);  
} 
interface ILoginCallback { 
    void loginSuccess(String userId); 
    void loginFailed(); 
} 

В вашей службе есть RemoteCallbacks

@Override 
public IBinder onBind(Intent intent) { 
    final RemoteCallbackList<ILoginCallback> mCallbacks = new RemoteCallbackList<ILoginCallback>(); 
    if(mCallbacks!=null){ 
     int i = mCallbacks.beginBroadcast(); 
     while(i>0){ 
      i--; 
      try { 
       Log.e(TAG, "Callback ..."); 
       mCallbacks.getBroadcastItem(i).loginSuccess(newUserId); 
      } catch (RemoteException e) { 
       // The RemoteCallbackList will take care of removing     
       // the dead object for us. 
      } 
     } 
     mCallbacks.finishBroadcast(); 
    } 
} 

private final IAccountService.Stub mBinder = new IAccountService.Stub() { 
     @Override 
     public void userLogin(String appId,ILoginCallback cb) throws RemoteException { 
      String userId = Settings.getSettings().getUserId(); 
      if(userId ==null||userId.length()==0){ 
       mCallbacks.register(cb); 
       Intent intent = new Intent(getApplicationContext(), AccountLoginActivity.class); 
       intent.putExtra("deviceId", Settings.getSettings().getDeviceUniqueId()); 
       intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
       startActivity(intent); 
      } 
     } 
} 

Вы можете найти подробные примеры AIDL в приведенных ниже ссылок.

  1. http://owenhuangtw.pixnet.net/blog/post/23760257-android-aidl-(android-interface-definition-language)
  2. http://www.app-solut.com/blog/2011/04/using-the-android-interface-definition-language-aidl-to-make-a-remote-procedure-call-rpc-in-android/
  3. https://github.com/afollestad/aidl-example
+0

Но я хотел показать второе приложение на полуэкране, в то время как в фоновом режиме текущее приложение запущено! – skygeek

+0

Да, вы можете получить обратный вызов, когда хотите показать удаленное представление и установить дистанционное представление для своего приложения, вам нужно обработать привязку намерения, чтобы доступ к удаленному просмотру был доступен. –

+0

Могу ли я показать удаленный просмотр на 50% экрана, а оставшаяся часть будет моим текущим открытым приложением? и будет ли все приложение изменено с точки зрения удаленного представления, если я хочу показать полное приложение из текущего открытого приложения? – skygeek

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

  • Нет связанных вопросов^_^