The import android provider.ContactsContract cannot be resolved

原因是例子里面用的是android1.5,里面没有android provider.ContactsContract包

1、在文件default.properties 里修改target的值为target=android-8
2、在androidmanifest.xml改sdk的版本为8,即<uses-sdk android:minSdkVersion="8" />

package co.sunnyapp.flutter_contact import android.annotation.SuppressLint import android.annotation.TargetApi import android.database.Cursor import android.os.Build import android.provider.ContactsContract import android.provider.ContactsContract.CommonDataKinds.StructuredPostal import java.util.* @TargetApi(Build.VERSION_CODES.ECLAIR) data class PostalAddress( val label: String? = null, val street: String? = null, val city: String? = null, val postcode: String? = null, val region: String? = null, val country: String? = null) { constructor(cursor: Cursor) : this( label = cursor.getAddressLabel(), street = cursor.string(StructuredPostal.STREET), city = cursor.string(StructuredPostal.CITY), postcode = cursor.string(StructuredPostal.POSTCODE), region = cursor.string(StructuredPostal.REGION), country = cursor.string(StructuredPostal.COUNTRY) ) companion object { } } fun String?.toEventType(): Int { val label = this; if (label != null) { return when (label) { "birthday" -> ContactsContract.CommonDataKinds.Event.TYPE_BIRTHDAY "anniversary" -> ContactsContract.CommonDataKinds.Event.TYPE_ANNIVERSARY else -> ContactsContract.CommonDataKinds.Event.TYPE_OTHER } } return ContactsContract.CommonDataKinds.Event.TYPE_OTHER } fun Cursor.string(index: String): String? { return getString(getColumnIndex(index)) } fun Cursor.long(index: String): Long? { return getLong(getColumnIndex(index)) } fun Cursor.int(index: String): Int? { return getInt(getColumnIndex(index)) } fun Cursor.getLabel(): String { val cursor = this; when (cursor.getInt(cursor.getColumnIndex(StructuredPostal.TYPE))) { StructuredPostal.TYPE_HOME -> return "home" StructuredPostal.TYPE_WORK -> return "work" StructuredPostal.TYPE_CUSTOM -> { val label = cursor.getString(cursor.getColumnIndex(StructuredPostal.LABEL)) return label ?: "" } } return "other" } 改写成arkts
最新发布
10-28
package com.example.kongjian; import androidx.appcompat.app.AppCompatActivity; import androidx.core.view.ViewCompat; import android.annotation.SuppressLint; import android.graphics.Insets; import android.os.Bundle; import android.provider.ContactsContract; import android.view.View; import android.view.Window; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; import java.time.Instant; public class MainActivity extends AppCompatActivity implements View.OnClickListener{ private EditText editText; private Button btn1; private TextView textView; private Button btn2; private Button btn3; @SuppressLint("WrongViewCast") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); EdgeT editText=findViewById(R.id.j_b); textView=findViewById(R.id.t_b); btn1=findViewById(R.id.t_a); btn2=findViewById(R.id.t_c); btn3=findViewById(R.id.t_d); btn1.setOnClickListener(this); btn2.setOnClickListener(this); btn3.setOnClickListener(this); ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.),((v, insets) -> { Insets systemBars=insets.getInsets(Window); v.setPadding(systemBars.left,systemBars.top,systemBars.right,systemBars.bottom); return insets; })); } @Override public void onClick(View v){ Button btn=(Button)v; if (btn.getId()==R.id.t_a){Toast.makeText(MainActivity.this,"按钮1被点击了",Toast.LENGTH_LONG).show();} else if(btn.getId()==R.id.t_c){Toast.makeText(MainActivity.this,"按钮2被点击了",Toast.LENGTH_LONG).show();} else{Toast.makeText(MainActivity.this,"按钮3被点击了",Toast.LENGTH_LONG).show();} } }
03-18
package com.example.myapplication; import android.annotation.SuppressLint; import android.content.Intent; import android.database.Cursor; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Color; import android.net.Uri; import android.os.Bundle; import android.provider.ContactsContract; import android.provider.MediaStore; import android.util.Log; import android.view.View; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.ImageView; import android.widget.ListView; import androidx.activity.EdgeToEdge; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; import androidx.core.content.FileProvider; import androidx.core.graphics.Insets; import androidx.core.view.ViewCompat; import androidx.core.view.WindowInsetsCompat; import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity { Button btn; ListView lv; ImageView iv; Button btn1; List<String> name_list; List<String> phone_list; Uri imageURI; @SuppressLint("MissingInflatedId") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); EdgeToEdge.enable(this); setContentView(R.layout.activity_main); ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> { Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()); v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom); return insets; }); btn=findViewById(R.id.btn); lv=findViewById(R.id.lv); btn1=findViewById(R.id.btn1); iv=findViewById(R.id.iv); name_list = new ArrayList<String>(); phone_list = new ArrayList<String>(); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Cursor cursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null); while(cursor.moveToNext()){ @SuppressLint("Range") String name = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)); @SuppressLint("Range") String con_id = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID)); Cursor ph_cursor = getContentResolver().query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID+"="+con_id, null, null); ArrayList<String> numbers = new ArrayList<String>(); while(ph_cursor.moveToNext()){ @SuppressLint("Range") String number = ph_cursor.getString( ph_cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); numbers.add(number); } name_list.add(name+":"+numbers.get(0)); //phone_list.add(numbers.get(0)); ArrayAdapter<String> adapter = new ArrayAdapter<>(getApplication(),android.R.layout.simple_list_item_1,name_list); lv.setAdapter(adapter); } } }); btn1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { File tempImage = new File(getExternalCacheDir(),"temp.jpg"); if (tempImage.exists()){ tempImage.delete(); } try { tempImage.createNewFile(); } catch (IOException e) { throw new RuntimeException(e); } imageURI = FileProvider.getUriForFile(getApplicationContext(), "com.example.myapplication.file_provider", tempImage); Intent intent = new Intent("android.media.action.IMAGE_CAPTURE"); intent.putExtra(MediaStore.EXTRA_OUTPUT,imageURI); startActivityForResult(intent,1); } }); } @Override protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data); switch (requestCode){ case 1: if(resultCode==RESULT_OK){ Bitmap bitmap = null; try { bitmap = BitmapFactory.decodeStream(getContentResolver().openInputStream(imageURI)); } catch (FileNotFoundException e) { throw new RuntimeException(e); } iv.setImageBitmap(bitmap); } break; default:break; } } public void onPredictClick(View view) { new Thread(() -> { try { // 获取图像 Bitmap bitmap = ((BitmapDrawable) imageView.getDrawable()).getBitmap(); // 创建分类器 SkinClassifier classifier = new SkinClassifier(this); // 执行分类并计时 long start = System.currentTimeMillis(); List<SkinClassifier.Category> results = classifier.classify(bitmap); long duration = System.currentTimeMillis() - start; // 更新UI runOnUiThread(() -> { if (!results.isEmpty()) { SkinClassifier.Category topResult = results.get(0); String label = topResult.label; float confidence = topResult.confidence * 100; resultText.setText(String.format( "预测结果: %s (%.1f%%) \n耗时: %dms", label, confidence, duration )); // 置信度颜色提示 resultText.setTextColor(confidence > 80 ? Color.GREEN : Color.YELLOW); } else { resultText.setText("无法识别皮肤类型"); } }); } catch (Exception e) { Log.e("MainActivity", "预测错误", e); } }).start(); } }上述代码中出现错误Cannot resolve symbol 'BitmapDrawable';Cannot resolve symbol 'imageView';Cannot resolve symbol 'resultText'怎么解决
10-24
package com.example.contentprovidertest; import android.content.ContentResolver; import android.database.Cursor; import android.os.Bundle; import android.provider.ContactsContract; import android.util.Log; import android.widget.ArrayAdapter; import android.widget.ListView; import androidx.appcompat.app.AppCompatActivity; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class MainActivity extends AppCompatActivity { private static String TAG = "MainActivity"; private ListView listViewContacts; private List<Map<String, String>> contactList; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listViewContacts = findViewById(R.id.listViewContacts); contactList = new ArrayList<>(); // 检查并请求权限(对于API 23及以上版本) if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) { if (checkSelfPermission(android.Manifest.permission.READ_CONTACTS) != android.content.pm.PackageManager.PERMISSION_GRANTED) { requestPermissions(new String[]{android.Manifest.permission.READ_CONTACTS}, 1); return; } } loadContacts(); } private void loadContacts() { Log.d(TAG,"start loadContacts"); ContentResolver contentResolver = getContentResolver(); Cursor cursor = contentResolver.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null); if (cursor != null && cursor.getCount() > 0) { int idColumnIndex = cursor.getColumnIndex(ContactsContract.Contacts._ID); int nameColumnIndex = cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME); int hasPhoneColumnIndex = cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER); // 检查关键列是否存在 if (idColumnIndex == -1 || nameColumnIndex == -1 || hasPhoneColumnIndex == -1) { cursor.close(); return; // 或者处理错误情况 } while (cursor.moveToNext()) { String id = cursor.getString(idColumnIndex); String name = cursor.getString(nameColumnIndex); // 检查是否有电话号码 String hasPhoneStr = cursor.getString(hasPhoneColumnIndex); if (hasPhoneStr != null && Integer.parseInt(hasPhoneStr) > 0) { Cursor phoneCursor = contentResolver.query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?", new String[]{id}, null); if (phoneCursor != null) { int phoneColumnIndex = phoneCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER); if (phoneColumnIndex == -1) { phoneCursor.close(); continue; // 跳过这个联系人 } while (phoneCursor.moveToNext()) { String phoneNumber = phoneCursor.getString(phoneColumnIndex); if (phoneNumber != null) { // 确保电话号码不为null Map<String, String> contact = new HashMap<>(); contact.put("name", name); contact.put("phoneNumber", phoneNumber); contactList.add(contact); } } phoneCursor.close(); } } } cursor.close(); // 使用自定义适配器显示数据 CustemAdapter adapter = new CustemAdapter(this, contactList); listViewContacts.setAdapter(adapter); } } } 帮我给上面的代码加上尽可能详细的注释
08-21
package com.example.kongjian; import androidx.appcompat.app.AppCompatActivity; import androidx.core.view.ViewCompat; import android.annotation.SuppressLint; import android.graphics.Insets; import android.os.Bundle; import android.provider.ContactsContract; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; import java.time.Instant; public class MainActivity extends AppCompatActivity implements View.OnClickListener{ private EditText editText; private Button btn1; private TextView textView; private Button btn2; private Button btn3; @SuppressLint("WrongViewCast") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); editText=findViewById(R.id.j_b); textView=findViewById(R.id.t_b); btn1=findViewById(R.id.t_a); btn2=findViewById(R.id.t_c); btn3=findViewById(R.id.t_d) btn1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(MainActivity.this,"按钮被点击了",Toast.LENGTH_LONG).show(); } }); btn1.setOnClickListener(this); btn2.setOnClickListener(this); btn3.setOnClickListener(this); ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.),((v, insets) -> { Insets systemBars=insets.getInsets(wind) })); } @Override public void onClick(View v){ Button btn=(Button)v; if (btn.getId()==R.id.btn1){Toast.makeText(MainActivity.this,"按钮被点击了",Toast.LENGTH_LONG).show();} else if(btn.getId()==R.id.btn2){Toast.makeText(MainActivity.this,"按钮被点击了",Toast.LENGTH_LONG).show();} else{Toast.makeText(MainActivity.this,"按钮被点击了",Toast.LENGTH_LONG).show();} } }
03-18
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值