2011-10-07 2 views
4

Я новичок в Unity и действительно не понимаю, как начать применение единства из андроидной активности. Мне нужен виджет, который иногда изменяется (например, при получении sms) и при нажатии на кнопку join. Существует никаких проблем с проектом виджета и единства отдельно. Но я не знаю, как начать объединение с андроидного проекта.Как запустить приложение Unity из андроидной активности?

+0

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

+0

Спасибо, я использовал getLaunchIntentForPackage ("имя_пакета"). Чтобы узнать имя пакета приложений Unity, я смотрю BuildSettings/PlayerSettings, затем в инспекторе OtherSettings/BundleIdentifier. И это работает :) – user966562

ответ

0

Вы можете расширить основную деятельность UnityPlayerActivity (проверочные основной цикл для проигрывателя Unity на Android)

public class MainActivity extends UnityPlayerActivity implements MyFunction { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 

    } 

    @Override 
    protected void onPause() { 
     super.onPause(); 
    } 

    @Override 
    protected void onStop() { 
     super.onStop(); 
    } 

    @Override 
    protected void onResume() { 
     super.onResume(); 
    } 

    @Override 
    protected void onDestroy() { 
     super.onDestroy(); 
    } 


} 

Вот является document

0

Я призываю начать приложения с кнопки виджета, и помогает мне. Я вызываю UpdateWidgetButtonsAction() из метода widget onUpdate и устанавливаю PendingIntent в onClick.

private void UpdateWidgetButtonsAction(Context context, AppWidgetManager appWidgetManager, int widgetID) 
    { 
     RemoteViews widgetView = new RemoteViews(context.getPackageName(), R.layout.widget_layout); 
     widgetView.setOnClickPendingIntent(R.id.MyButtonImage, getPendingSelfIntent(context, "ACTION_LOAD_APP")); 
     appWidgetManager.updateAppWidget(widgetID, widgetView); 
    } 

затем создать BroadcastReciever, которые принимают меры ACTION_LOAD_APP и startActivity

public class WidgetBroadcastReceiver extends BroadcastReceiver 
{ 

@Override 
public void onReceive(Context context, Intent intent) { 

    LogCollector.Log("WidgetBroadcastReceiver " + intent.getAction()); 
    if(ACTION_LOAD_APP.equals(intent.getAction())) 
    { 
     Intent launchIntent = context.getPackageManager().getLaunchIntentForPackage("UNITY_PACKAGE_NAME"); 
     context.startActivity(launchIntent); 
    } 
} 

}

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