जैसा कि मुझे लगता है कि यह संभव है, यहां से Detecting toast messages परन्तु मैं लिंक से कोड स्निपेट के साथ किसी भी ईवेंट को पकड़ने में असमर्थ हूं।टोस्ट ईवेंट (किसी भी ऐप से) को पकड़ें और टोस्ट संदेश प्राप्त करें
MyAccessibilityService.java
package com.test.toasts2;
import android.accessibilityservice.AccessibilityService;
import android.accessibilityservice.AccessibilityServiceInfo;
import android.app.Notification;
import android.os.Parcelable;
import android.view.accessibility.AccessibilityEvent;
import android.widget.Toast;
public class MyAccessibilityService extends AccessibilityService {
@Override
public void onAccessibilityEvent(AccessibilityEvent event) {
System.out.println("event catched");
Toast.makeText(this, "catched " + "!", Toast.LENGTH_SHORT).show();
if(event.getEventType() != AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED)
return; // event is not a notification
String sourcePackageName = (String)event.getPackageName();
Parcelable parcelable = event.getParcelableData();
if(parcelable instanceof Notification){
// Statusbar Notification
}
else{
// something else, e.g. a Toast message
String log = "Message: "+event.getText().get(0)+" [Source: "+sourcePackageName+"]";
System.out.println(log);
// write `log` to file...
}
}
@Override
public void onInterrupt() {
// TODO Auto-generated method stub
}
@Override
protected void onServiceConnected() {
// TODO Auto-generated method stub
super.onServiceConnected();
AccessibilityServiceInfo info = new AccessibilityServiceInfo();
info.feedbackType = AccessibilityServiceInfo.DEFAULT;
setServiceInfo(info);
}
}
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.test.toasts2"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="15" />
<application>
<service android:name=".MyAccessibilityService"
android:label="label">
<intent-filter>
<action android:name="android.accessibilityservice.AccessibilityService" />
</intent-filter>
</service>
</application>
</manifest>
लगता है जैसे इस सेवा बस शुरू नहीं कर रहा है। क्या मैं गलत हूं?
मैं ऐसा क्यों कर रहा हूं: मैं अपने ऐप से स्टॉक लॉन्चर पर कई शॉर्टकट इंस्टॉल कर रहा हूं। मुझे समस्या है कि थीस शॉर्टकट एक सेल में एक दूसरे पर रखा गया है (यहां तक कि स्लीप 500 मदद नहीं करता)। तो मैं उन्हें एक-दूसरे से स्थापित करने का एक तरीका ढूंढ रहा हूं। लेकिन शॉर्टकट सफलतापूर्वक स्थापित होने पर कैसे जानना है? मुझे केवल एक संदेश मिला है कि ics लॉन्चर उपयोगकर्ता को दिखाता है।
आपको अनुमति की अनुमति नहीं है – njzk2