Android Studio 学习内容提供器

Posted lancelee98

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android Studio 学习内容提供器相关的知识,希望对你有一定的参考价值。

运行时权限

  • 使用ContextCompat.checkSelfPermission(MainActivity.this,Manifest.permission.CALL_PHONE)!=PackageManager.PERMISSION_GRANTED//判断是否有权限
  • ActivityCompat.requestPermissions(MainActivity.this,
    new String[] {Manifest.permission.CALL_PHONE},1);//没有权限 进行申请
  • onRequestPermissionResult() //无论哪种结果都会回调到这个函数中 所以重写这个函数

makecallButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(ContextCompat.checkSelfPermission(MainActivity.this, Manifest.
permission.CALL_PHONE)!=PackageManager.PERMISSION_GRANTED)
ActivityCompat.requestPermissions(MainActivity.this,
new String[] {Manifest.permission.CALL_PHONE},1);
else
call();
}
});
private void call()
{
try{
Intent intent = new Intent (Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:10086"));
startActivity(intent);
}
catch (SecurityException e)
{
e.printStackTrace();
}
}

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    switch (requestCode){
    case 1:
        if(grantResults.length >0 && grantResults[0]== PackageManager.PERMISSION_GRANTED)
            call();
        else
            Toast.makeText(MainActivity.this,"you denied the  permission",Toast.LENGTH_LONG).show();
        break;
    default:
}
}

}

查找联系人姓名和电话

ListView contactsView = (ListView) findViewById(R.id.listview);
adapter = new ArrayAdapter

private void readContanct()
{
Cursor cursor = null;
try{
cursor = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null,null,null,null);
if(cursor != null)
while (cursor.moveToNext()){
String displayName = cursor.getString(cursor.getColumnIndex
(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
String number =cursor.getColumnName(cursor.getColumnIndex
(ContactsContract.CommonDataKinds.Phone.NUMBER));
contactsList.add(number);
adapter.notifyDataSetChanged();
}
}
catch (Exception e)
{
e.printStackTrace();
}
finally {
if(cursor!=null)
cursor.close();
}
}

















































以上是关于Android Studio 学习内容提供器的主要内容,如果未能解决你的问题,请参考以下文章

联系人选择器未在 Android Studio 中提供预期结果

错误记录Android Studio 配置 AspectJ 报错 ( all buildscript {} blocks must appear before any plugins {} )(代码片

我的Android进阶之旅Android Studio 中 使用git提交代码报错:Can‘t commit changes from multiple changelists at once(代码片

Android studio提示Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8.(代码片

Android studio提示Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8.(代码片

Android学习--跨程序共享数据之内容提供其探究