2012-07-31 14 views

Odpowiedz

21

można wysłać Wstecz prasę do systemu jak ten

this.dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_BACK)); 

Albo można zastąpić Wstecz naciśnij i zadzwonić

finish(); 

na swojej działalności. To w zasadzie robi to samo, co ogólny przycisk powrotu.

+0

Nie działa w moim kodu ... mówi mi, aby go zmienić na ACTION_DOWN i KEYCODE_BACK nie istnieją, co musiałbym zaimportować, aby je znaleźć? – JuiCe

+1

Spróbuj użyć KeyEvent.ACTION_DOWN i KeyEvent.KEYCODE_BACK :) – jimmithy

+0

Dziękuję wam bardzo. – JuiCe

12

Po prostu zadzwoń pod this.onBackPressed(); w Działaniu.

+0

To jest świetna odpowiedź. – VSG24

+1

Ten jest najlepszą odpowiedzią, ponieważ proste wywołanie nie uruchamia onBackPressed tak jak działa prawdziwy przycisk wstecz. Jeśli aktywność będzie robić dodatkowe rzeczy, będzie to pominięte. – Andrew

+0

Ale tak, jakby istniał jakikolwiek dialog dotyczący działania, to zamknie on działanie, a prawdziwy przycisk tego nie zrobi. – NehaK

0

Jeśli chcesz tylko "nacisnąć przycisk" sprzętu, create usługa rozszerzona z AccessibilityService:

class ExampleAccessService:AccessibilityService() { 
    override fun onInterrupt() { 
    } 

    override fun onAccessibilityEvent(event: AccessibilityEvent?) { 
    } 

    fun doAction(){ 
     performGlobalAction(GLOBAL_ACTION_RECENTS) 
//  performGlobalAction(GLOBAL_ACTION_BACK) 
//  performGlobalAction(GLOBAL_ACTION_HOME) 
//  performGlobalAction(GLOBAL_ACTION_NOTIFICATIONS) 
//  performGlobalAction(GLOBAL_ACTION_POWER_DIALOG) 
//  performGlobalAction(GLOBAL_ACTION_QUICK_SETTINGS) 
//  performGlobalAction(GLOBAL_ACTION_TOGGLE_SPLIT_SCREEN) 
    } 
} 

połączenia doAction() gdzie chcesz akcja

Dodaj do Manifest:

<application 
... 
    <service 
     android:name=".ExampleAccessService" 
     android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE" 
     android:label="Name of servise" // it will be viewed in Settings->Accessibility->Services 
     android:enabled="true" 
     android:exported="false" > 
     <intent-filter> 
      <action android:name="android.accessibilityservice.AccessibilityService"/> 
     </intent-filter> 
     <meta-data 
      android:name="android.accessibilityservice" 
      android:resource="@xml/accessibility_service_config"/> 
    </service> 
... 
</application> 

accessibili ty_service_config.xml:

<?xml version="1.0" encoding="utf-8"?> 
<accessibility-service xmlns:android="http://schemas.android.com/apk/res/android" 
    android:accessibilityEventTypes="typeAllMask" 
    android:accessibilityFeedbackType="feedbackAllMask" 
    android:accessibilityFlags="flagDefault" 
    android:canRetrieveWindowContent="false" 
    android:description="your description" 
    android:notificationTimeout="100" 
    android:packageNames="your app package, ex: ex: com.example.android" 
    android:settingsActivity="your settings activity ex: com.example.android.MainActivity" /> 

uzyskać więcej informacji spojrzeć na https://developer.android.com/guide/topics/ui/accessibility/services.html

Powiązane problemy