android gsm经纬度,入门塔式GSM位置经纬度LNG(Getting Tower GSM location lat lng

我想知道的方法或一种方法来找到移动终端连接到的小区的位置(GSM一个)

这是我的课:

package com.example.signal;

import java.io.File;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.OutputStreamWriter;

import java.sql.Date;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.LinkedList;

import java.util.List;

import android.location.Location;

import android.location.LocationListener;

import android.location.LocationManager;

import android.net.ConnectivityManager;

import android.os.Bundle;

import android.app.Activity;

import android.content.Context;

import android.telephony.CellLocation;

import android.telephony.NeighboringCellInfo;

import android.telephony.PhoneStateListener;

import android.telephony.SignalStrength;

import android.telephony.TelephonyManager;

import android.telephony.cdma.CdmaCellLocation;

import android.telephony.gsm.GsmCellLocation;

import android.text.format.Time;

import android.util.Log;

import android.view.Menu;

import android.widget.LinearLayout;

import android.widget.ScrollView;

import android.widget.TextView;

import android.widget.Toast;

public class MainActivity extends Activity {

int counter = 0;

MainActivity mainn = this;

String SignalType = "";

List ListText = new LinkedList();

TelephonyManager Tel;

MyPhoneStateListener MyListener;

int dBm;

int ASU;

Context context;

LinearLayout Linear;

ScrollView scroll;

File myFile;

FileOutputStream fOut;

OutputStreamWriter myOutWriter;

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

// setContentView(R.layout.activity_main);

myFile = new File("/sdcard/mysdfile.txt");

while (myFile.exists())

{

counter++;

myFile = new File("/sdcard/mysdfile" + counter+".txt");

}

try {

myFile.createNewFile();

fOut = new FileOutputStream(myFile);

myOutWriter = new OutputStreamWriter(fOut);

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

Linear = new LinearLayout(this);

Linear.setOrientation(LinearLayout.VERTICAL);

scroll = new ScrollView(this);

scroll.addView(Linear);

this.setContentView(scroll);

Tel = ( TelephonyManager )getSystemService(Context.TELEPHONY_SERVICE);

if (Tel.getPhoneType() == TelephonyManager.PHONE_TYPE_CDMA) {

Toast.makeText(getApplicationContext(), "NO GSM", Toast.LENGTH_SHORT).show();

return;

} else if (Tel.getPhoneType() == TelephonyManager.PHONE_TYPE_GSM) {

}

Tel.listen(MyListener ,PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);

MyListener = new MyPhoneStateListener();

}

/* Called when the application is minimized */

@Override

protected void onPause()

{

super.onPause();

Tel.listen(MyListener, PhoneStateListener.LISTEN_NONE);

}

/* Called when the application resumes */

@Override

protected void onResume()

{

super.onResume();

Tel.listen(MyListener,PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);

}

/* —————————– */

/* Start the PhoneState listener */

/* —————————– */

private class MyPhoneStateListener extends PhoneStateListener

{

/* Get the Signal strength from the provider, each tiome there is an update */

@Override

public void onSignalStrengthsChanged(SignalStrength signalStrength)

{

super.onSignalStrengthsChanged(signalStrength);

//Toast.makeText(getApplicationContext(), "Go to Firstdroid!!! GSM Cinr = "

// + String.valueOf(signalStrength.getGsmSignalStrength()), Toast.LENGTH_SHORT).show();

ASU = signalStrength.getGsmSignalStrength();

if (ASU > 30) {

SignalType = "Good";

// signalStrengthText.setTextColor(getResources().getColor(R.color.good));

} else if (ASU > 20 && ASU < 30) {

SignalType = "Average";

// signalStrengthText.setTextColor(getResources().getColor(R.color.average));

} else if (ASU < 20) {

SignalType = "Weak";

// signalStrengthText.setTextColor(getResources().getColor(R.color.weak));

}

dBm= -113+(2*ASU);

TelephonyManager m = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);

if (m.getSimState() != TelephonyManager.SIM_STATE_ABSENT){

// SIM card

} else {

// No SIM card

}

TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);

CellLocation location = telephonyManager.getCellLocation();

GsmCellLocation gsmLocation = (GsmCellLocation) location;

String networkOperator = telephonyManager.getNetworkOperator();

if (networkOperator != null) {

int mcc = Integer.parseInt(networkOperator.substring(0, 3));

int mnc = Integer.parseInt(networkOperator.substring(3));

Log.d("mcc " + mcc, "mnc " + mnc);

}

//CdmaCellLocation gsmLocation1 = (CdmaCellLocation) location;

int cellId = gsmLocation.getCid();

int lac = gsmLocation.getLac();

// Log.d("al latitude ", gsmLocation1.getBaseStationLatitude()+"");

//Time today = new Time(Time.getCurrentTimezone());

//today.setToNow();

String mydate = java.text.DateFormat.getDateTimeInstance().format(Calendar.getInstance().getTime());

TextView tvv = new TextView(mainn);

tvv.setText("GSM dBm " + String.valueOf(dBm) + " , Cell ID " + String.valueOf(cellId) + " , Cell LAC " + String.valueOf(lac)+ " , ASU " + ASU + " , Time now " + mydate + " , Signal Type " + SignalType);

// Toast.makeText(getApplicationContext(), "Go to Firstdroid!!! GSM dBm = "

// + String.valueOf(dBm) + " , Cell ID = " + String.valueOf(cellId) +" , Cell Lac = " + String.valueOf(lac), Toast.LENGTH_SHORT).show();

/* LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);

// Define a listener that responds to location updates

LocationListener locationListener = new LocationListener() {

public void onLocationChanged(Location location) {

// Called when a new location is found by the network location provider.

// makeUseOfNewLocation(location);

}

public void onStatusChanged(String provider, int status, Bundle extras) {}

public void onProviderEnabled(String provider) {}

public void onProviderDisabled(String provider) {}

};

// Register the listener with the Location Manager to receive location updates

locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);

String locationProvider = LocationManager.NETWORK_PROVIDER;

// Or use LocationManager.GPS_PROVIDER

Location lastKnownLocation = locationManager.getLastKnownLocation(locationProvider);

double lat = lastKnownLocation.getLatitude();

double longg = lastKnownLocation.getLongitude();

Log.d("Lat is " + lat, "Long is " + longg);

int psc = gsmLocation.getPsc();

Log.d("TAG", "PSC = " + psc); */

List neighCell = null;

neighCell = telephonyManager.getNeighboringCellInfo();

for (int i = 0; i < neighCell.size(); i++)

{

NeighboringCellInfo thisCell = neighCell.get(i);

int CID = thisCell.getCid();

int RSSI = thisCell.getRssi();

int PSC = thisCell.getPsc();

Log.d("TAG", " "+CID+" - "+RSSI + " - " + PSC);

}

try

{

myOutWriter.append(tvv.getText());

myOutWriter.append("\n");

}

catch (Exception e)

{

e.printStackTrace();

}

Linear.addView(tvv);

Linear.invalidate();

scroll.invalidate();

}

};/* End of private Class */

/* GetGsmSignalStrength */

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.main, menu);

return true;

}

@Override

public void onBackPressed()

{

try

{

myOutWriter.close();

fOut.close();

this.finish();

}

catch (Exception e)

{

e.printStackTrace();

}

}

}

有一些东西,我可以说gsmLocation.getLatitude()或gsmLocation.getLongitude()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值