Posts

Showing posts from July, 2023

密苏里路试记录

在美国考驾照分两部分:笔试和路试。笔试记录在前面的文章中有提到,可以去看看。 现在讲笔试的部分。考过permit之后就可以在21岁拥有驾照的人的陪同下驾车了。如果拿到permit的年龄超过18岁,就可以练习一下然后直接去考路试了。如果没有过18岁,就需要上路一定时间之后才能去考试。 由于本人之前没有学过开车,所以是去找驾校先学,学会了再去路试。在圣路易斯区域随便找一个驾校跟着学就行了。本人找的是save drivers驾校,在网上跟驾校约着然后去上课就好。 等到觉得自己足够熟练之后就可以去预约路试了。在( 这个 )网站可以看到所有的考试地点。在选到自己喜欢的考试地点之后可以去跟驾校约考试。 本人的路试是在圣路易斯县的testing center考的。      据说big bend的考试中心也不错:      去考路试需要以下材料:   permit  护照 i20 i94 SSN 或者 SS-5  不过本人去的时候只要求了permit。   考试的流程如下: 到考试中心之后,先去前台checkin,之后考官会安排时间考试。考官叫号之后会让你带着他去车子然后做车辆检查。考官会让你操作刹车,左右转向灯,空调,除雾器,灯,雨刷器。之后根据考官要求,上路进行考试。 路试的时候需要注意的点如下:  stop sign一定要完全停车,如果主路车比较多就可以多停一会儿,不要急着走。这个考耐心的。 考官说 make left turn/ right turn的时候打开转向灯,如果转向灯掉了就要马上重新打上。  一定不要超速,不能超速。速度可以低于limit 10 mph,但是绝对不能高。 速度也不能太低,太低了也会扣分。  转弯的时候一定要慢,左转yield on green的时候可以多等一会儿。 pull over的时候记得提前打右转向灯。而且停的离curb近一点,但是不要太近。 倒车的时候双手不要离方向盘,头要一直往后看,直到考官说stop的时候才能扭头回来。  转弯倒车变道的时候头部动作大一点,记得检查盲区,勤看后视镜。  parallel park的时候记得多转头,不能用倒车辅助。...

获取百度地图sdk的sha1

最近做的东西涉及到使用百度地图sdk,发现在注册百度地图key的时候需要一个开发版sha1和一个发布版的sha1,这两个值估计是用来验证程序完整性的。 这个东西困扰了我一段时间,我也查了很多资料,但都没什么用。我在具体研究了之后,刚好摸出来了一个方法,现在来讲讲怎么获取这两个值: 首先是开发版sha1,这个比较简单。 先记录下自己debug.keystore文件的位置,我的电脑上这个文件在这个位置: C:\Users\用户名\.android\debug.keystore 。 然后找到自己jdk的bin文件夹的位置,我的是这个: C:\Program Files\Java\jdk-17.0.2\bin 。 现在打开终端,先将文件夹指向jdk的bin文件夹: cd C:\Program Files\Java\jdk-17.0.2\bin 。 然后输入这个命令: keytool -list -v -keystore C:\Users\用户名\.android\debug.keystore 注意:debug.keystore文件的位置需要自行调整, 密码为:android 到此获取开发版本sha1就完成了。 获取发布版的sha1跟上面的步骤差不多,只不过debug.keystore是自己打包app时用的签名文件(格式为jks的文件)。

密苏里汽车Permit获取全记录

*2022-3-10更新:已经在mail中拿到卡片的permit了。 现在拿驾照已经不需要oiss写的证明了。拿齐证件去考试中心考试即可。 证件 需要的证件: 护照 i20 表格 如果有ssn,带ssn卡去。如果没有ssn,去ssa*申请一张ss-5表格,也是denial form。 i-94 landing permit,这个自己要提前打印 一张能够证明住址的文件,我用的是银行账单。电话账单,电费账单之类的都可以。 *注:圣路易斯的ssa在downtown,717 N 16th。开车去会比较方便,大众运输轻铁不会直接到,可以坐97号巴士。 ssa的地址: ​ ​ 考试 拿齐资料之后就可以去考试了。圣路易斯地区有多个考试中心,downtown的只周一开门。我是周二去考的,选的在Manchester,在big bend rd上。这个Manchester的考点是 周一到周五 八点到四点。中午去人比较少,没有大众运输,只能开车或者Uber。 MSHP的地址: ​ ​ 到MSHP考试处之后会先核对身份,把资料交上去就好。之后会安排到墙后面去考试。考试是在电脑上考试的,一共25道题,答对20道及格。错六个判fail。如果有题不会可以skip。理论上来说是可以不停skip,直到做了25道题就完成考试。 完成考试之后去排队考road sign和vision test。road sign和vision都是用像望远镜的机器考的。vision就是读数字,数字挺大的。road sign就是六个不变的road sign,每次去考都是那六个。考完之后就领取成绩单,然后去dmv缴费领取permit。 领取Permit 离WashU最近的dmv办公室在downtown clayton,坐shuttle然后再走一段路能到。 去dmv之前带好这几个东西: 护照 i20 i-94 成绩单 能证明自己地址的文件,两份,必须是纸质。ss-5上有住址的可以作为证明。 dmv办公室地址: dmv办公室在二楼,suite 202(好像是)。 进到办公室之后签到排队等叫名字。排到号了去办公室里上交所有资料,然后付款,是7.5美元。付款完会打印一个临时permit,可以用这个开车,但是需要有21岁以上持有驾照的人陪同。然后dmv会给你的地址寄一个你的permit卡。纸质的permit是有有效期的,如果过了就...

Android 定位使用

最近给车写了个速度仪表程序,需要用到GPS,所以在这里记录一下Android中的GPS使用方式。 第一步要在 AndroidManifest.xml 里面加入这行:     <pre><code>&lt;uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /&gt;</code></pre> 来申请访问位置的权限。 第二步,在MainActivity里定义并初始化 LocationManager 和 locationProvider。比如: <pre><code>LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);</code></pre> LocationManager的主要作用是初始化GPS服务,方便后面用GPS。 locationProvider是一个string变量,储存的定位方式(网络,基站,GPS)。初始化方法如下: String locationProvider = locationManager.GPS_PROVIDER; 我这里图方便直接用GPS,毕竟这个最准。 第三步,获取定位。这一步其实很简单,需要声明一个Location变量,然后让locationManager不停的请求新位置。 (这个必须要先申请权限,要不然没办法运行) 初始化Location变量,先获取一下最后已经知道的位置: <pre><code>Location location = locationManager.getLastKnownLocation(locationProvider);</code></pre> 再让locationManager不停请求新位置,用的是这个方法:requestLocationUpdates() 比如: <pre><code> locationManager.requestLocationUpdates(locationP...

Android ListView 简单使用

最近在做车子的速度仪表,有个环节要用到ListView,正好写写怎么用这个。ListView这个东西用自带的ArrayAdapter挺简单的,可惜没有什么自定义功能,不过这也够我用。第一步,在layout里声明一下ListView: <pre><code> &lt;ListView         android:id="@+id/lv"         android:layout_width="match_parent"         android:layout_height="match_parent"         /&gt;</code></pre> 第二步,声明并初始化ListView和ArrayAdapter的变量: <pre><code> Listview lv = findViewById(R.id.lv); ArrayAdapter av = new ArrayAdapter(this, android.R.layout.simple_list_item_1, data); lv.setAdapter(av); </code></pre> 这里的这个data是指的填充ListView的数据。到这里就有一个能正常显示内容的ListView了。ListView每行显示的内容其实都是能点击的,想要实现点击功能很简单,加一个监听器就行: <pre><code> private AdapterView.OnItemClickListener onItemClickListener = (adapterView, view, i, l) -> {         //点击后的动作     }; </code></pre> 上面这段代码里比较有用的就是这个i变量,储存了用户点击的位置。注:这段代码是放在activity里的,声明监听器的方式也不只这一种。最后,把监听器和List...

Implementing Multi-Selection in Android ListView

This is a feature I've wanted to implement for a while but wasn't sure how. I finally figured it out these past few days, so I'm writing it down here to record it. To implement multi-selection for a ListView , you need to set a ChoiceMode and a multi-selection listener. ChoiceMode refers to how many selections the user can make on the ListView (single, multiple). The ChoiceMode for multi-selection is set like this: lv.setChoiceMode(AbsListView.CHOICE_MODE_MULTIPLE_MODAL); Note: To use AbsListView , you need to import android.widget.AbsListView beforehand. While changing the ListView, it's also best to change the layout in your array adapter to this, so the user knows what they've selected: android.R.layout.simple_list_item_multiple_choice Implementing the multi-selection listener is also very simple: rideListView.setMultiChoiceModeListener( new AbsListView.MultiChoiceModeListener() { @Override public void onItemCheckedStateChanged (ActionMode actionM...