0
通知バーから受信したWhatsAppメッセージを読み取ろうとしています。通知からWhatsAppメッセージを読み取る
のWhatsAppメッセージを受信した場合、私は、そうすることを
@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
public class MyAccessibilityService extends AccessibilityService {
private final AccessibilityServiceInfo info = new AccessibilityServiceInfo();
private static final String TAG = "MyAccessibilityService";
public static TextView title;
public static TextView inbox;
public static TextView text;
@Override
protected void onServiceConnected()
{
Log.d("onServiceConnected", "ServiceConnected");
try
{
AccessibilityServiceInfo info = new AccessibilityServiceInfo();
info.eventTypes = AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED;
info.packageNames = new String[]
{"com.whatsapp"};
info.feedbackType = AccessibilityServiceInfo.FEEDBACK_ALL_MASK;
info.notificationTimeout = 100;
setServiceInfo(info);
}
catch(Exception e)
{
Log.d("ERRORonServiceConnected", e.toString());
}
}
@Override
public void onAccessibilityEvent(AccessibilityEvent event)
{
try
{
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
Parcelable data = event.getParcelableData();
if(data != null)
{
Notification notification = (Notification) data;
RemoteViews remoteView = notification.contentView;
ViewGroup localView = (ViewGroup) inflater.inflate(remoteView.getLayoutId(), null);
remoteView.reapply(getApplicationContext(), localView);
Resources resources = null;
PackageManager pkm = getPackageManager();
try
{
resources = pkm.getResourcesForApplication("com.whatsapp");
}
catch (PackageManager.NameNotFoundException e)
{
e.printStackTrace();
}
if (resources == null)
return;
int TITLE = resources.getIdentifier("android:id/title", null, null);
int INBOX = resources.getIdentifier("android:id/big_text", null, null);
int TEXT = resources.getIdentifier("android:id/text", null, null);
String packagename = String.valueOf(event.getPackageName());
title = (TextView) localView.findViewById(TITLE);
inbox = (TextView) localView.findViewById(INBOX);
text = (TextView) localView.findViewById(TEXT);
Log.d("NOTIFICATION Package : ", packagename);
Log.d("NOTIFICATION Title : ", title.getText().toString());
Log.d("got x messages : ", text.getText().toString());
Log.d("NOTIFICATION inbox : ", inbox.getText().toString());
}
}
catch(Exception e)
{
Log.e("onAccessibilityEvent", e.toString());
}
}
}
を次のコードを使用しています、それはログ
E/onAccessibilityEvent﹕ java.lang.NullPointerException: Attempt to invoke virtual method 'int android.widget.RemoteViews.getLayoutId()'on a null object reference
ノートに次のエラーが表示されます。 私は追加していません特定のアクセス許可。 エラーで私を手伝ってください。私は特にこれに新しいです。
http://stackoverflow.com/questions/28980078/read-notification-bar-title-message-using-accessibility-service-programmaticallこれを確認してください。 – khetanrajesh
私はマニフェストの中にパーミッションが必要かどうかを質問したいと思います。 – Aditya