- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个设备可以向我发送它的位置。它通常发送从 GPS 获得的坐标,但如果 GPS 信号不好,它会进行 GSM 三角测量并向我发送 MCC、MNC、LAC 和 CELLID 值。
有了这4个值,我需要获取位置坐标(纬度,经度)。为此,我尝试使用谷歌的 GLM 隐藏服务(http://www.google.com/glm/mmap)。假设将这 4 个值传递给该服务,它会返回纬度/经度坐标,但网上关于该服务的信息不多。
根据重新收集的信息,我编写了一个执行此操作的小应用程序,但无法正常工作。这是 Locgact 显示的内容:
11-21 13:02:29.692: W/IInputConnectionWrapper(11990): endBatchEdit on inactive InputConnection
11-21 13:02:31.264: W/IInputConnectionWrapper(11990): endBatchEdit on inactive InputConnection
11-21 13:02:43.506: W/System.err(11990): android.os.NetworkOnMainThreadException
11-21 13:02:43.506: W/System.err(11990): at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1145)
11-21 13:02:43.506: W/System.err(11990): at java.net.InetAddress.lookupHostByName(InetAddress.java:385)
11-21 13:02:43.506: W/System.err(11990): at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236)
11-21 13:02:43.506: W/System.err(11990): at java.net.InetAddress.getAllByName(InetAddress.java:214)
11-21 13:02:43.506: W/System.err(11990): at com.android.okhttp.internal.Dns$1.getAllByName(Dns.java:28)
11-21 13:02:43.506: W/System.err(11990): at com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:216)
11-21 13:02:43.506: W/System.err(11990): at com.android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:122)
11-21 13:02:43.506: W/System.err(11990): at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:292)
11-21 13:02:43.516: W/System.err(11990): at com.android.okhttp.internal.http.HttpEngine.sendSocketRequest(HttpEngine.java:255)
11-21 13:02:43.516: W/System.err(11990): at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:206)
11-21 13:02:43.516: W/System.err(11990): at com.android.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:345)
11-21 13:02:43.516: W/System.err(11990): at com.android.okhttp.internal.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:89)
11-21 13:02:43.516: W/System.err(11990): at com.gsmlocation.MainActivity.transform(MainActivity.java:114)
11-21 13:02:43.516: W/System.err(11990): at com.gsmlocation.MainActivity$1.onClick(MainActivity.java:80)
11-21 13:02:43.516: W/System.err(11990): at android.view.View.performClick(View.java:4445)
11-21 13:02:43.526: W/System.err(11990): at android.view.View$PerformClick.run(View.java:18446)
11-21 13:02:43.526: W/System.err(11990): at android.os.Handler.handleCallback(Handler.java:733)
11-21 13:02:43.526: W/System.err(11990): at android.os.Handler.dispatchMessage(Handler.java:95)
11-21 13:02:43.526: W/System.err(11990): at android.os.Looper.loop(Looper.java:136)
11-21 13:02:43.526: W/System.err(11990): at android.app.ActivityThread.main(ActivityThread.java:5146)
11-21 13:02:43.536: W/System.err(11990): at java.lang.reflect.Method.invokeNative(Native Method)
11-21 13:02:43.536: W/System.err(11990): at java.lang.reflect.Method.invoke(Method.java:515)
11-21 13:02:43.536: W/System.err(11990): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:732)
11-21 13:02:43.536: W/System.err(11990): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:566)
11-21 13:02:43.536: W/System.err(11990): at dalvik.system.NativeStart.main(Native Method)
这是我的代码:
public Location transform(int cellID, int lac, int mcc, int mnc) {
try {
URL providerAddress = new URL("http://www.google.com/glm/mmap");
HttpURLConnection connection = (HttpURLConnection) providerAddress.openConnection();
connection.setRequestMethod("POST");
connection.setDoOutput(true);
connection.connect();
OutputStream outputStream = connection.getOutputStream();
writePlainData(outputStream, cellID, lac, mcc, mnc);
InputStream inputStream = connection.getInputStream();
DataInputStream dataInputStream = new DataInputStream(inputStream);
dataInputStream.readShort();
dataInputStream.readByte();
int code = dataInputStream.readInt();
if (code == 0) {
double lat = dataInputStream.readInt() / 1000000D;
double lon = dataInputStream.readInt() / 1000000D;
coordinates.setLatitude(lat);
coordinates.setLongitude(lon);
return coordinates;
} else {
return null;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
protected void writePlainData(OutputStream out, int cellID, int lac, int mcc, int mnc) throws IOException {
DataOutputStream dos = new DataOutputStream(out);
dos.writeShort(0x0E); // Fct code
dos.writeInt(0); // requesting 8 byte session
dos.writeInt(0);
dos.writeShort(0); // country code string
dos.writeShort(0); // client descriptor string
dos.writeShort(0); // version tag string
dos.writeByte(0x1B); // Fct code
dos.writeInt(0); // MNC?
dos.writeInt(0); // MCC?
dos.writeInt(3); // Radio Access Type (3=GSM, 5=UMTS)
dos.writeShort(0); // length of provider name
// provider name string
dos.writeInt(cellID); // CID
dos.writeInt(lac); // LAC
dos.writeInt(mnc); // MNC
dos.writeInt(mcc); // MCC
dos.writeInt(-1); // always -1
dos.writeInt(0); // rx level
dos.flush();
}
LocCat 指向的线是:
connection.connect();
最佳答案
你遇到了 android.os.NetworkOnMainThreadException
所以在 AsyncTask
中运行你的代码
class LoadingLocation extends AsyncTask<Void, Void, Void>
{
@Override
protected Void doInBackground(Void... params)
{
public Location transform(int cellID, int lac, int mcc, int mnc) {
try {
URL providerAddress = new URL("http://www.google.com/glm/mmap");
HttpURLConnection connection = (HttpURLConnection) providerAddress.openConnection();
connection.setRequestMethod("POST");
connection.setDoOutput(true);
connection.connect();
OutputStream outputStream = connection.getOutputStream();
writePlainData(outputStream, cellID, lac, mcc, mnc);
InputStream inputStream = connection.getInputStream();
DataInputStream dataInputStream = new DataInputStream(inputStream);
dataInputStream.readShort();
dataInputStream.readByte();
int code = dataInputStream.readInt();
if (code == 0) {
double lat = dataInputStream.readInt() / 1000000D;
double lon = dataInputStream.readInt() / 1000000D;
coordinates.setLatitude(lat);
coordinates.setLongitude(lon);
return coordinates;
} else {
return null;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
return null;
}
}
关于android - GSM 位置到坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27061058/
我想使用 GSM 调制解调器对电话号码进行语音调用,播放录制的消息,等待按下数字然后断开调用。系统需要知道线路是否占线、用户是否应答以及用户按下了哪个数字(如果有)。如果在 30 秒内没有按下任何内容
我想以 PDU 模式发送短信。我已经检查了我的调制解调器的规范,它支持 PDU 模式。 我已经开发了 PDU 编码器和解码器,但现在我不知道如何将数据发送到我的调制解调器。我尝试了这些 AT 命令:
我正在使用 SIM9000A GSM 调制解调器并将其连接到我的 PC。 问题是,每当我的 SIM 卡收到短信时,我都会在 PC 中收到以下数据: +CMTI: "SM",8 我希望所有传入的短信都应
我是 NodeMCU 的新用户,我想让它与 SIM900 等 GSM 模块通信。我可以使用ESP8266的第二个UART端子与GSM模块连接吗? 谢谢。 最佳答案 我写了一个教程:http://atc
我正在寻找 GSM-MAP 和 INAP 协议(protocol)的 ASN.1 文件。我尝试在 3gpp.org 中搜索但找不到。 任何帮助将不胜感激。 最佳答案 GSM MAP操作在29.002中
我正在开发一个 Android 应用程序项目,该项目需要为运行该应用程序的每台设备激活。在 Windows PC 上,我知道一些解决方案,例如使用 HDD 的序列号作为激活过程的唯一标识符。 但是我需
我有个问题。我想为橙派零加2等小型机购买GSM/GPS/3G模块,所以不能是Raspberry Pi GSM Hat .我真的找到了good module ,但我不确定某些事情。也许你可以帮助我。 第
是否可以禁用 GSM 调用、SMS、MMS 并保持 GSM 调制解调器启用?我想在没有除调制解调器之外的所有服务的情况下使用我的 iPhone。谢谢你的回答! 最佳答案 不,这是不可能的,作为开发人员
使用 AT 命令可以完成哪些任务?是否可以获得手机的当前状态、制造商以及与手机相关的其他一些详细信息? 最佳答案 我找到了你的答案 GSM module文章。 获取有关移动电话或 GSM/GPRS 调
各位 我有两个原型(prototype)(比如原型(prototype) A 和 B )。两种原型(prototype)机都使用 Telit GSM 调制解调器。我使用通用 SIM 卡来与它们一起使用
情况: 在基于 GSM 的调制解调器上,您使用 ATDxxxxxxxxx 开始语音通话; 某些调制解调器在远程端应答时发出“CONNECT”,或者其他调制解调器在诊断端口上返回“^CONN: 1, 0
GSM 有端到端的语音加密吗? 如果不是,是手机和手机之间的语音通信吗? 移动基站,至少加密? 那里使用了哪些键以及哪些算法?任何的想法? 最佳答案 Is there end-to-end voice
我知道一条 USSD 消息由 160 个字节组成。对于 7 位数据编码方案,最大字符数为 160*8/7,即 182 个字符。我不清楚 UCS2 编码的最大字符数是多少。通常,它会类似于 160/2,
我有一个中兴通讯制造的 GSM 调制解调器。我想开发一个应用程序来通过此设备发送短信。问题是我无法连接到 COM 端口。我在设备管理器中只能看到 COM22 上的 HSPADataCard 诊断接口(
我有一个 arduino GSM 扩展板,位于 arduino uno 之上。我有下面的代码。屏蔽仅显示它正在连接,但从未显示它已连接。我想知道为什么它没有连接。我将不胜感激任何帮助。我正在使用 ar
我有一个设备可以向我发送它的位置。它通常发送从 GPS 获得的坐标,但如果 GPS 信号不好,它会进行 GSM 三角测量并向我发送 MCC、MNC、LAC 和 CELLID 值。 有了这4个值,我需要
我正在开发一个 C++ 程序,用于录制音频并将其压缩到 GSM。我能够录制音频并将原始数据写入文件。但我无法让 GSM 压缩工作。我正在尝试使用我在这个网站上找到的源代码进行压缩 ftp://ftp.
我有 2 个 GSM 调制解调器,K3772-Z 的字符集为 8859-1,工作正常。 但对于我的其他 GSM 调制解调器,它是 ZTE K3565-Z,它无法正常工作,它一直返回“设置字符集失败”
我想使用 GSM 调制解调器从一个号码向另一个带有号码的 GSM 调制解调器进行语音调用。这可能吗?我可以使用什么软件? 最佳答案 是的,假设您只想发起和接收语音调用,这是可能的。您将无法使用软件处理
我刚刚连接了一个 A6 GSM 模块并编写了一个代码,通过以 9600 波特率连接的串口监视器与其交互。但是字符“?”只是不停地来,没有别的工作。 这是我的代码: #include SoftwareS
我是一名优秀的程序员,十分优秀!