2015-09-29 2 views
0

У меня есть фрагментАктивность (открытый класс WearRunActivity расширяет FragmentActivity), который я хочу всегда показывать на экране.FragmentActivity всегда на экране

Я не могу установитьAmbientEnabled(); потому что это не wearableActivity ....

Как я могу держать мое приложение на

+0

Почему мой вопрос был отклонен? Что с этим не так? – cdlc

ответ

0

Вы можете установить флаг, чтобы сохранить вашу активность на:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 

Однако, будьте очень осторожны и внимательны от потребления аккумулятора пользователем. Вы можете очистить этот флаг, как только вы не нужна ваша активность, чтобы остаться на по телефону

getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 
+0

Я нашел это обходное решение, но нет реального способа позволить экрану перейти в режим окружающего пространства вместо того, чтобы быть полностью включенным без WearableActivity? – cdlc

+0

Нет, вы не сможете этого сделать. –

0

Вы должны осуществлять AmbientMode.AmbientCallbackProvider обратного вызова вместо этого.

Это новый предпочтительный метод, и он по-прежнему дает вам все, что дает WearableActivity, но также позволяет использовать Activity (или любые подкласс ... FragementActivity и т. Д.).

Official docs call out the details (and example code):

public class MainActivity extends Activity implements AmbientMode.AmbientCallbackProvider { 

    /* 
    * Declare an ambient mode controller, which will be used by 
    * the activity to determine if the current mode is ambient. 
    */ 
    private AmbientMode.AmbientController mAmbientController; 
    … 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    ... 
     mAmbientController = AmbientMode.attachAmbientSupport(this); 
    } 
    ... 

    … 
    @Override 
    public AmbientMode.AmbientCallback getAmbientCallback() { 
     return new MyAmbientCallback(); 
    } 
    … 

private class MyAmbientCallback extends AmbientMode.AmbientCallback { 
    @Override 
    public void onEnterAmbient(Bundle ambientDetails) { 
      // Handle entering ambient mode 
    } 

    @Override 
    public void onExitAmbient() { 
     // Handle exiting ambient mode 
    } 

    @Override 
    public void onUpdateAmbient() { 
     // Update the content 
    } 
} 
Смежные вопросы