一個可用的,但不是最好的方法是使用輔助。
在AndroidManifest XML文件中聲明無障礙服務
<service
android:name=".MyAccessibilityService"
android:label="@string/accessibility_service_label"
android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE" >
<intent-filter>
<action android:name="android.accessibilityservice.AccessibilityService" />
</intent-filter>
<meta-data
android:name="android.accessibilityservice"
android:resource="@xml/accessibility_service_config" />
</service>
accessibility_service_config.xml文件
<accessibility-service xmlns:android="http://schemas.android.com/apk/res/android"
android:description="@string/accessibility_service_desc"
android:accessibilityEventTypes="typeAllMask"
android:accessibilityFlags="flagDefault|flagIncludeNotImportantViews"
android:accessibilityFeedbackType="feedbackSpoken"
android:notificationTimeout="100"
android:canRetrieveWindowContent="true"
/>
店當窗口狀態改變的活動名稱
public class MyAccessibilityService extends AccessibilityService{
public static String sActivityName;
@Override
public void onAccessibilityEvent(AccessibilityEvent event) {
// TODO Auto-generated method stub
if(event.getEventType() == AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED){
Log.d("activitytest", "onAccessibilityEvent with window state changed");
sActivityName = event.getClassName().toString();
}
}
@Override
public void onInterrupt() {
// TODO Auto-generated method stub
}
}
缺點是你需要讓用戶在設置中啓用您的輔助功能服務秒。
我在想,如果你能檢索與新UsageStatsManager的topActivity爲Android L.如果是,請讓我知道如何。示例代碼也是有用的。謝謝。 – user3144836 2014-12-26 06:28:26
@ user3144836:你能找到獲得TopActivity的方法嗎? – venkat 2015-02-21 03:21:27
@venkat:沒有。還沒有想到如何做到這一點,但在Android 5.0棒棒糖 – user3144836 2015-02-22 03:54:36