Android读取拨号记录功能 首先会检测应用是否有读取拨号记录的权限
MainActivity.java
public class MainActivity extends AppCompatActivity { private ListView listCalls; private List> mapList; private static final int REQUEST_CODE = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); onShowCallLog(); } public void initView() { listCalls = (ListView) super.findViewById(R.id.call_list); SimpleAdapter simpleAdapter = new SimpleAdapter( this, mapList, R.layout.call_item, new String[]{CallLog.Calls.NUMBER, CallLog.Calls.DATE}, new int[]{R.id.call_mobile, R.id.call_date}); listCalls.setAdapter(simpleAdapter); } private void initDate() { ContentResolver contentResolver = getContentResolver(); Cursor cursor = contentResolver.query(CallLog.Calls.CONTENT_URI, new String[]{CallLog.Calls.NUMBER, CallLog.Calls.DATE}, null, null, null); mapList = new ArrayList<>(); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); while (cursor.moveToNext()) { Map stringObjectMap = new HashMap<>(); stringObjectMap.put(CallLog.Calls.NUMBER, cursor.getString(0)); stringObjectMap.put(CallLog.Calls.DATE, simpleDateFormat.format(new Date(cursor.getLong(1)))); mapList.add(stringObjectMap); } cursor.close(); } private void onShowCallLog() { int checkCALL_LOGPermission = ContextCompat.checkSelfPermission(this, Manifest.permission.READ_CALL_LOG); if (checkCALL_LOGPermission != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_CALL_LOG}, REQUEST_CODE); } else { initDate(); initView(); } } @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { if (requestCode == REQUEST_CODE) { if (grantResults[0] == PackageManager.PERMISSION_GRANTED) { Toast.makeText(this, "获取权限成功", Toast.LENGTH_SHORT).show(); initDate(); initView(); } else { Toast.makeText(this, "获取权限失败", Toast.LENGTH_SHORT).show(); this.finish(); } } else { super.onRequestPermissionsResult(requestCode, permissions, grantResults); } } }
activity_main.xml
call_item.xml
AndroidManifest.xml
上一篇:【数据驱动领域EI会议推荐】2024年智能电力系统与数据驱动创新国际研讨会(IPSDDI 2024)
下一篇:6、ES单机设置用户名密码、集群设置用户名密码、es-head登录、如何去掉密码