package com.example.lbstest;
import android.Manifest;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.Uri;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AppCompatActivity;
import android.telephony.PhoneStateListener;
import android.telephony.SignalStrength;
import android.telephony.TelephonyManager;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import com.baidu.location.BDLocation;
import com.baidu.location.BDLocationListener;
import com.baidu.location.LocationClient;
import com.baidu.location.LocationClientOption;
import java.util.ArrayList;
import java.util.List;
public class LocationActivity extends AppCompatActivity {
private static final int NETWORKTYPE_WIFI = 0;
private static final int NETWORKTYPE_4G = 1;
private static final int NETWORKTYPE_3G = 2;
private static final int NETWORKTYPE_2G = 3;
private static final int NETWORKTYPE_NONE = 4;
public TextView mTextView;
//final int PICK_CONTACT = 0;
//TelephonyManager类的对象
TelephonyManager Tel;
//MyPhoneStateListener类的对象,即设置一个监听器对象
MyPhoneStateListener MyListener = new MyPhoneStateListener();//初始化对象
private TextView positionText;
public LocationClient mLocationClient;
public Button btnSendStrength;
public TextView textTelephone;
//private MapView mapView;
//private BaiduMap baiduMap;
List<Contacts> contactsList=new ArrayList<Contacts>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mLocationClient = new LocationClient(getApplicationContext());
mLocationClient.registerLocationListener(new MyLocationListener());
setContentView(R.layout.activity_location);
mTextView = (TextView) findViewById(R.id.text_CDMA); //信号强度
positionText = (TextView) findViewById(R.id.text_position);//地理位置显示
btnSendStrength = (Button)findViewById(R.id.btn_SendSignalStrength);
textTelephone = (TextView) findViewById(R.id.text_Telephone);
//Return the handle to a system-level service by name.通过名字获得一个系统级服务
Tel = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
//Registers a listener object to receive notification of changes in specified telephony states.设置监听器监听特定事件的状态
Tel.listen(MyListener ,PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);
positionText = (TextView) findViewById(R.id.text_position);
btnSendStrength.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
Intent intent = new Intent();
intent.setAction(Intent.ACTION_SENDTO);
intent.setData(Uri.parse("smsto:"));
intent.putExtra("sms_body", mTextView.getText().toString() +
positionText.getText().toString() +
textTelephone.getText().toString());
startActivity(intent);
}
});
List<String> permissionList = new ArrayList<>();
if (ContextCompat.checkSelfPermission(LocationActivity.this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
permissionList.add(Manifest.permission.ACCESS_FINE_LOCATION);
}
if (ContextCompat.checkSelfPermission(LocationActivity.this, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {
permissionList.add(Manifest.permission.READ_PHONE_STATE);
}
if (ContextCompat.checkSelfPermission(LocationActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
permissionList.add(Manifest.permission.WRITE_EXTERNAL_STORAGE);
}
if (!permissionList.isEmpty()) {
String [] permissions = permissionList.toArray(new String[permissionList.size()]);
ActivityCompat.requestPermissions(LocationActivity.this, permissions, 1);
} else {
requestLocation();
}
}
private void requestLocation() {
initLocation();
mLocationClient.start();
}
private void initLocation(){
LocationClientOption option = new LocationClientOption();
option.setScanSpan(3000);
option.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy);//高精度模式
option.setIsNeedAddress(true);
mLocationClient.setLocOption(option);
}
@Override
protected void onResume() {
super.onResume();
Tel.listen(MyListener, PhoneStateListener.LISTEN_NONE);
}
@Override
protected void onPause() {
super.onPause();
Tel.listen(MyListener, PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);
}
@Override
protected void onDestroy() {
super.onDestroy();
//mLocationClient.stop();
//mapView.onDestroy();
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
switch (requestCode) {
case 1:
if (grantResults.length > 0) {
for (int result : grantResults) {
if (result != PackageManager.PERMISSION_GRANTED) {
Toast.makeText(this, "必须同意所有权限才能使用本程序", Toast.LENGTH_SHORT).show();
finish();
return;
}
}
requestLocation();
} else {
Toast.makeText(this, "发生未知错误", Toast.LENGTH_SHORT).show();
finish();
}
break;
default: break;
}
}
public class MyLocationListener implements BDLocationListener {
@Override
public void onReceiveLocation(BDLocation location) {
StringBuilder currentPosition = new StringBuilder();
currentPosition.append("定位信息是纬度:").append(location.getLatitude()).append("\n");
currentPosition.append("经线:").append(location.getLongitude()).append("\n");
currentPosition.append("海拔:").append(location.getAltitude()).append("m\n");
currentPosition.append("速度:").append(location.getSpeed()).append("km/h\n");
currentPosition.append("时间:").append(location.getTime()).append("\n");
currentPosition.append(location.getAddrStr()).append("\n"); ; //获取地址信息.
//currentPosition.append(location.getOperators()).append("\n"); //获取运营商信息
currentPosition.append("定位方式:");
if (location.getLocType() == BDLocation.TypeGpsLocation) {
currentPosition.append("GPS");
} else if (location.getLocType() == BDLocation.TypeNetWorkLocation) {
currentPosition.append("网络");
}
positionText.setText(currentPosition);
TelephonyManager telephonyManager= (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
String networkOperatorName=telephonyManager.getNetworkOperatorName();
textTelephone.setText("本机号码: "
没有合适的资源?快使用搜索试试~ 我知道了~
信号强度检测和手机定位安卓程序.rar
共152个文件
png:52个
xml:44个
java:39个
需积分: 10 7 下载量 182 浏览量
2020-05-04
16:47:43
上传
评论 1
收藏 25.77MB RAR 举报
温馨提示
程序使用最新Android Studio 开发设计,可以检测4G,3G,2G,WiFi的信号强度和信号速率,可以手机定位,显示经纬度,海拔,速度,详细的地理位置,时间信息。还可以长ping包测试无线网络是否连续。
资源推荐
资源详情
资源评论
收起资源包目录
信号强度检测和手机定位安卓程序.rar (152个子文件)
app-release.apk 13.73MB
LocationActivity.java 17KB
PingResultActivity.java 11KB
NetworkActivity.java 7KB
IptvActivity.java 4KB
MainActivity.java 3KB
FileUtils.java 3KB
Guz1Activity.java 2KB
CommonActivity.java 2KB
ContactsAdapter.java 1KB
Contacts.java 707B
iptv1Activity.java 580B
HttpUtil.java 440B
Network1Activity.java 353B
Network7Activity.java 353B
Network2Activity.java 353B
Network3Activity.java 353B
Network8Activity.java 353B
Network5Activity.java 353B
Network4Activity.java 353B
Network9Activity.java 353B
Network6Activity.java 353B
NewiptvActivity.java 351B
ApplicationTest.java 350B
Iptv10Activity.java 349B
AboutActivity.java 347B
Iptv8Activity.java 347B
Iptv9Activity.java 347B
Iptv2Activity.java 347B
Iptv7Activity.java 347B
Iptv5Activity.java 347B
Iptv6Activity.java 347B
Iptv4Activity.java 347B
Iptv3Activity.java 347B
Guz3Activity.java 345B
Guz5Activity.java 345B
Guz2Activity.java 345B
Guz6Activity.java 345B
Guz4Activity.java 345B
ExampleUnitTest.java 312B
output.json 191B
olt1.png 805KB
guangmao1.png 759KB
img3.png 611KB
img2.png 529KB
stb2.png 494KB
stb3.png 447KB
img1.png 373KB
stb4.png 368KB
stb5.png 347KB
stb1.png 258KB
hwphone3.png 180KB
hwphone4.png 166KB
hwdata2.png 141KB
ztephone7.png 136KB
hwphone1.png 130KB
hwphone2.png 113KB
ztedata2.png 107KB
ic_launcher-web.png 100KB
hwdata7.png 90KB
sliding_bg.png 80KB
hwdata1.png 77KB
hwdata8.png 70KB
ztedata4.png 64KB
ztedata1.png 60KB
hwdata5.png 60KB
hw_guangshuai.png 57KB
hwdata4.png 57KB
hwdata3.png 57KB
hwdata6.png 56KB
ztephone4.png 52KB
ztephone5.png 48KB
ztedata3.png 43KB
ztephone2.png 37KB
ztephone1.png 32KB
ztephone6.png 32KB
ic_launcher.png 22KB
ic_launcher.png 22KB
ztephone3.png 19KB
ic_launcher.png 13KB
internet.png 11KB
internet.png 11KB
ic_launcher.png 6KB
ic_launcher.png 4KB
bg_key_pressed.png 3KB
bg_key_pressed.png 3KB
bg_key_normal.png 3KB
bg_key_normal.png 3KB
ic_launcher.png 2KB
btn_bg1.png 2KB
btn_bg1.png 2KB
btn_bg2.png 847B
btn_bg2.png 847B
libBaiduMapSDK_map_v4_0_0.so 2.17MB
libBaiduMapSDK_map_v4_0_0.so 2.08MB
libBaiduMapSDK_map_v4_0_0.so 1.97MB
libBaiduMapSDK_base_v4_0_0.so 1.18MB
libBaiduMapSDK_base_v4_0_0.so 1.16MB
libBaiduMapSDK_base_v4_0_0.so 1.12MB
libBaiduMapSDK_map_v4_0_0.so 1.03MB
共 152 条
- 1
- 2
资源评论
xiurong562343295
- 粉丝: 6
- 资源: 11
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功