我想要做的是从导航应用程序中读取下一个转弯方向,假设您已经有一个目标集.例如,我需要以某种方式监视我自己内部导航应用程序给出的当前驾驶指令(参见附件).

我尝试过这样做:检测新的Android通知以从通知栏中读取方向文本.虽然,这似乎不适用于持久性通知(即通知你不能"滑动"远离通知栏).
无论如何,一旦导航应用程序运行,我可以提取此信息吗?如果您想知道,我想使用这些数据通过蓝牙发送到外部设备,以显示我车内的Heads Up Display的下一个转弯.
我通过扩展BaseAdapter创建了自定义列表视图和适配器.每次我尝试在适配器上调用notifyDataSetChanged()时,程序都会发生NullPointerException崩溃.
这是我创建listview和适配器的代码:
private ArrayList<MessageItem> convList = new ArrayList<MessageItem>();
// setup list view
ListView list = (ListView)findViewById(R.id.conv_list);
MessageAdapter dataAdapter = new MessageAdapter(this, convList);
list.setAdapter(dataAdapter);
list.setVisibility(View.VISIBLE);
Run Code Online (Sandbox Code Playgroud)
每次通过网络接收新数据时,我都会尝试在AsyncTask中执行此更新列表视图:
protected class ConversationTask extends AsyncTask<Context, String, String>
{
@Override
protected String doInBackground(Context... arg0) {
for (;;) {
while (t_recv.messageQueue.isEmpty());
publishProgress(t_recv.messageQueue.remove(t_recv.messageQueue.size() - 1));
}
}
@Override
protected void onProgressUpdate(String... i)
{
convList.add(new MessageItem("Name", "Msg"));
dataAdapter.notifyDataSetChanged();
}
}
Run Code Online (Sandbox Code Playgroud)
调用notifyDataSetChanged()时发生NullPointerException.如果我删除此调用,列表视图将仅在我按下后退按钮或显示/隐藏键盘时更新(我猜这会以某种方式触发更新).所以...我在这里做错了吗?
如果需要,适配器的代码如下:
public class MessageAdapter extends BaseAdapter
{
private Context context;
private ArrayList<MessageItem> listMessage;
public MessageAdapter(Context context, ArrayList<MessageItem> listMessage) …Run Code Online (Sandbox Code Playgroud)