தொடக்கநிலைகளுக்கான Android பயிற்சிகள் பகுதி -4: உள்ளடக்க வழங்குநர்



இந்த Android பயிற்சி உள்ளடக்க வழங்குநர் கருத்துகளைப் பற்றி விவாதிக்கிறது. இது அண்ட்ராய்டின் முக்கியமான கட்டுமானத் தொகுதியாகும், இது ஆண்ட்ராய்டு கணினியில் தரவு பரிமாற்றத்திற்கு உதவுகிறது.

ஆரம்பநிலைக்கான எங்கள் முந்தைய Android பயிற்சிகளில், Android இன் முதல் மூன்று கட்டுமானத் தொகுதிகளைப் பற்றி விவாதித்தோம்: நடவடிக்கை , நோக்கம் மற்றும் சேவைகள் . இந்த கட்டுரை ஆரம்பநிலை ஆண்ட்ராய்டு டுடோரியல்களில் நான்காவது இடத்தில் உள்ளது மற்றும் உள்ளடக்க வழங்குநரைப் பற்றி விவாதிக்கிறது, இது Android அமைப்பின் மற்றொரு மிக முக்கியமான அங்கமாகும்.

உள்ளடக்க வழங்குநர் உங்கள் Android அமைப்பின் இடைத்தரகர், வெவ்வேறு Android பயன்பாடுகளுக்கு இடையில் தரவு பரிமாற்றத்தை எளிதாக்குகிறது. இந்த ஆண்ட்ராய்டு டுடோரியலில் அதன் விவரங்களை கொஞ்சம் பார்ப்போம்.



ஆரம்ப -4 போனஸிற்கான Android டுடோரியல்: உள்ளடக்க வழங்குநர் குறியீட்டை இங்கே பதிவிறக்கவும் . நீங்கள் டுடோரியல் வழியாக சென்றதும் இந்த குறியீட்டை நீங்கள் விரும்புவீர்கள்! :)

[dl url = ”#” class = ”eModal eModal-6 ″ title =” பதிவிறக்க குறியீடு ”desc =” ”type =” ”align =” ”for =” download ”]



Android பயிற்சிகள்: உள்ளடக்க வழங்குநர்

வெவ்வேறு பயன்பாடுகளில் தரவு பகிர்வு மற்றும் தரவு கையாளுதலை அனுமதிக்க உள்ளடக்க வழங்குநர் ஒரு மைய தரவுக் கடை அல்லது கிடங்கை அணுக உதவுகிறது.

Android கணினியின் API இல் இயல்புநிலை உள்ளடக்க வழங்குநர்களின் சில எடுத்துக்காட்டுகள் இங்கே:

Android பயிற்சிகள்: Android கணினியில் இயல்புநிலை உள்ளடக்க வழங்குநர்கள்



இந்த உள்ளடக்க வழங்குநர்கள் ஒரு அடிப்படை தரவுத்தளத்திலிருந்து பயனரை சுருக்க அனுமதிக்கின்றனர். பொதுவாக, உள்ளடக்க வழங்குநர்கள் அடிப்படை தரவுத்தளத்தை சேமிக்க SQLite ஐப் பயன்படுத்துகின்றனர்.

முந்தைய ஆண்ட்ராய்டு டுடோரியல்களிலும் விஷயங்களை எளிமைப்படுத்த எங்களுக்கு உதவிய நல்ல பழைய பேஸ்புக் பயன்பாட்டின் எப்போதும் பயனுள்ள உதாரணத்தை எடுத்துக்கொள்வோம்!

நீங்கள் அனைவரும் உங்கள் சமூக வலைப்பின்னல் வாழ்க்கையில் ஒரு கட்டத்தில், உங்கள் பேஸ்புக் காலவரிசையில் ஒரு படத்தைப் பதிவேற்றியுள்ளீர்கள், இல்லையா! அதை எப்படி செய்வது?

சுவரில் உள்ள புகைப்பட பொத்தானைக் கிளிக் செய்தால், நீங்கள் புகைப்பட கேலரிக்கு வருவீர்கள். அங்கிருந்து பதிவேற்ற ஒரு புகைப்படத்தை தேர்வு செய்யலாம்.

இன் முந்தைய கட்டுரைகளைப் படித்த பிறகு Android டுடோரியல் தொடர் , செயல்பாடுகள் மற்றும் நோக்கங்களைப் பற்றி உங்களுக்குத் தெரியும், எனவே இதுதான் நடக்கும் என்பதை நீங்கள் அறிவீர்கள்:

உங்கள் பேஸ்புக் சுவர் ஒரு “செயல்”. புகைப்பட பொத்தானைக் கிளிக் செய்யும்போது, ​​ஒரு “INTENT” அனுப்பப்படுகிறது, இது செய்தியை வெளிப்படுத்துகிறது மற்றும் “CONTENT PROVIDER” (புகைப்பட தொகுப்பு) திறக்கிறது. “SERVICE” நெட்வொர்க் பதிவேற்றத்தைப் பயன்படுத்தி புகைப்படம் பதிவேற்றப்படுகிறது.

உங்கள் பேஸ்புக் பயன்பாட்டிற்குள் உள்ளடக்க வழங்குநர் எவ்வாறு செயல்படுகிறார் என்பதை அறிய இந்த நேரடி வீடியோவைப் பாருங்கள்.

Android கணினிக்கு உள்ளடக்க வழங்குநர்கள் ஏன் தேவை?

ஒரு பயன்பாட்டில் உருவாக்கப்பட்ட தரவுத்தளம் இரண்டாவது பயன்பாட்டிற்கு தெரியாததால் உள்ளடக்க வழங்குநர்களின் தேவை எழுகிறது.

SQLite ஐப் பயன்படுத்தி வெவ்வேறு பயன்பாடுகளில் தரவுத்தளத்தை உருவாக்கி சேமிப்பது எளிது, இருப்பினும் சிக்கல் இதுதான், Android இல் உள்ள ஒரு தரவுத்தளம் அதை உருவாக்கும் பயன்பாட்டிற்கு தனிப்பட்டது . ஒவ்வொரு பயன்பாட்டையும் அணுகக்கூடிய பொதுவான சேமிப்பக பகுதி Android இல் இல்லை. எனவே, வெவ்வேறு பயன்பாடுகள் தரவுத்தளத்தைப் பயன்படுத்த, அண்ட்ராய்டு கணினிக்கு ஒரு இடைமுகம் தேவை, இது அத்தகைய பயன்பாடு மற்றும் இடை-செயல்முறை தரவு பரிமாற்றத்தை அனுமதிக்கிறது. உள்ளடக்க வழங்குநர் விளையாட இங்குதான்.

எனக்கு உண்மையில் உள்ளடக்க வழங்குநர் தேவையா?

1) நீங்கள் நீங்கள் ஒரு தனிப்பட்ட தரவுத்தளத்தை விரும்பினால் உங்கள் சொந்த வழங்குநரை உருவாக்க தேவையில்லை ஒரு குறிப்பிட்ட பயன்பாட்டிற்கு (இந்த தரவுத்தளத்தை உருவாக்கிய பயன்பாட்டைத் தவிர வேறு பயன்பாடுகளுக்கு அணுக முடியாது).

2) எனினும் தனிப்பயன் தேடல் பரிந்துரைகளை வழங்க தனிப்பயன் வழங்குநர் தேவை உங்கள் சொந்த பயன்பாட்டு அமைப்பில்.

3) உங்களுக்கு உள்ளடக்க வழங்குநரும் தேவை உங்கள் பயன்பாட்டிலிருந்து சிக்கலான தரவை பிற பயன்பாடுகளுக்கு நகலெடுத்து ஒட்டவும்.

உள்ளடக்க வழங்குநரால் ஆதரிக்கப்படும் செயல்பாடுகள் யாவை?

உள்ளடக்க வழங்குநர்கள் பின்வரும் அடிப்படை செயல்பாடுகளை ஆதரிக்கிறார்கள்:

ஜாவா வழிமுறைகள் மற்றும் தரவு கட்டமைப்புகள்

ஒன்று) வினவல்: குறிப்பிட்ட URI இன் அடிப்படையில் அனைத்து பொருட்களுக்கும் உள்ளடக்க வழங்குநரை வினவுகிறது.

2) அழி: உள்ளடக்க வழங்குநரின் தரவுத்தளத்திலிருந்து குறிப்பிட்ட பொருட்களை நீக்குகிறது.

3) புதுப்பி: தரவுத்தளத்தில் உள்ள பொருள்களுக்கான புதுப்பிப்புகளை உருவாக்குகிறது.

4) செருகு: தரவுத்தளத்தில் புதிய பொருளைச் செருகும்.

உள்ளடக்க வழங்குநரில் ஒரு செயல்பாட்டைச் செய்வதற்கான படிகள்

படி 1: உள்ளடக்க வழங்குநரை அணுகுவது

ContentResolver கிளையன்ட் பொருள் உள்ளடக்க வழங்குநரிடமிருந்து தரவை அணுக பயன்படுகிறது. இது வழங்குநர் பொருளுடன் தொடர்புகொள்கிறது, இது தரவை அணுகுவதற்கான கோரிக்கையை ஏற்றுக்கொண்டு விரும்பிய முடிவுகளை வழங்குகிறது. வழங்குநர் மற்றும் வழங்குநர் கிளையன்ட் பொருள் வழங்கிய தரவு பரிமாற்ற இடைமுகம் வெவ்வேறு செயல்முறைகள் / பயன்பாடுகள் முழுவதும் தொடர்பு கொள்ள அனுமதிக்கிறது.

தரவுத்தளத்தை அணுக வேண்டிய பயன்பாடு இதை அறிவித்து அதன் மேனிஃபெஸ்ட் கோப்பில் அனுமதிகளை கோர வேண்டும். இது எங்கள் அடுத்தடுத்த Android டுடோரியல்களில் விரிவாக விவாதிக்கப்படும்.

உள்ளடக்கம் URI

உள்ளடக்க URI என்பது ஒரு வழங்குநரின் தரவை அடையாளம் காண பயன்படுத்தப்படும் வாதங்களில் ஒன்றாகும். இது நான்கு பகுதிகளைக் கொண்டுள்ளது:

ஒன்று) திட்டம்: உள்ளடக்க வழங்குநருக்கான திட்டம் நிலையான மதிப்பைக் கொண்டுள்ளது: “உள்ளடக்கம்”.

2) அதிகாரம்: இது வழங்குநரின் குறியீட்டு பெயர், மேலும் ஒவ்வொன்றிற்கும் தனித்துவமானது. பலவற்றின் பட்டியலிலிருந்து விரும்பிய உள்ளடக்க வழங்குநரை நாங்கள் தனிமைப்படுத்துவது இதுதான்.

3) பாதை: பாதை முழுமையான தரவுத்தளத்திலிருந்து தேவையான தரவை வேறுபடுத்த உதவுகிறது . உதாரணமாக, அழைப்பு பதிவு உள்ளடக்க வழங்குநர் தவறவிட்ட அழைப்புகள், பெறப்பட்ட அழைப்புகள் போன்றவற்றை வெவ்வேறு பாதைகளைப் பயன்படுத்தி வேறுபடுத்துகிறார்.

4) ஐடி: இது ஒரு கட்டாய கூறு அல்ல, அது URI இல் இருக்காது, ஆனால் இருந்தால், அது எண்ணாக இருக்க வேண்டும். உதாரணமாக, உங்கள் மீடியா உள்ளடக்க வழங்குநரிடமிருந்து ஒரு குறிப்பிட்ட இசைக் கோப்பை அணுக விரும்பினால், நீங்கள் ஒரு ஐடியையும் குறிப்பிடுவீர்கள் .

செயல்முறை

வழங்குநர் அதிகாரத்தைப் பயன்படுத்தி, ContentResolver சரியான உள்ளடக்க வழங்குநரை அடையாளம் காட்டுகிறது (ஒவ்வொரு உள்ளடக்க வழங்குநருக்கும் அதிகாரம் தனித்துவமானது என்பதால்). அதைச் செய்தபின், சரியான (கோரப்பட்ட) தரவு அட்டவணையைத் தேர்ந்தெடுக்க URI இன் பாதை கூறு பயன்படுத்தப்படுகிறது. ஒரு ஐடி இருந்தால், சரியான தரவு என்ன கோரப்படுகிறது என்பதை வழங்குநருக்குத் தெரியும்.

URI கள் இரண்டு வகைகளாகும்:

கூடுதலாக, URI க்கள் வரம்புக்குட்பட்ட தகவல்களையும் கொண்டிருக்கலாம்.

படி 2: உள்ளடக்க வழங்குநரிடமிருந்து தரவை எவ்வாறு பெறுவது

ContentResolver இப்போது தரவு அட்டவணைக்கு அணுகலைக் கொண்டிருந்தாலும், பயன்பாடு இல்லாவிட்டால் தேவையான தரவை மீட்டெடுக்க முடியாது “அணுகல் அனுமதியைப் படிக்கவும்” குறிப்பிட்ட வழங்குநருக்கு. ஒவ்வொரு உள்ளடக்க வழங்குநரின் மேனிஃபெஸ்ட் கோப்பில் இந்த அனுமதி வரையறுக்கப்படுகிறது.

அதெல்லாம் ஒரு பயன்பாடு (இந்த தரவுத்தளத்தை அணுக விரும்புகிறது) செய்ய வேண்டியது இந்த அனுமதியைக் கோருவதுதான்.

இப்போது இந்த Android டுடோரியலில் முன்பு விவாதித்தபடி, உள்ளடக்க வழங்குநரைப் பயன்படுத்தி நான்கு செயல்பாடுகளை மேற்கொள்ள முடியும் . ஒவ்வொன்றாக ஒவ்வொன்றாக செல்வோம்.

வினவல்

இப்போது, ​​நீங்கள் வழங்குநரை அணுகியுள்ளீர்கள், அதிலிருந்து தரவை மீட்டெடுக்க அனுமதி பெற்றுள்ளீர்கள். அடுத்த கட்டம் வழங்குநரிடமிருந்து தேவையான நடவடிக்கையை கோர வினவலை உருவாக்கவும் .

வினவும்போது பயன்படுத்தப்படும் வாதங்கள் இங்கே:

ஒன்று) வெறுக்கிறேன் : இது மேலே விளக்கப்பட்டுள்ளபடி சரியாக வேலை செய்கிறது.

2) திட்டம்: வினவல் வேண்டும் முழு தரவுத்தள அட்டவணையிலிருந்து நெடுவரிசைகளின் தொகுப்பைத் தரவும் . இது ப்ரொஜெக்ஷன் என்று அழைக்கப்படுகிறது. பூஜ்யத்தை கடந்து செல்வது அனைத்து நெடுவரிசைகளையும் வழங்கும், இது திறமையற்றது.

3) தேர்வு விதி: TO எந்த வரிசைகள் திரும்ப வேண்டும் என்று அறிவிக்கும் வடிகட்டி , ஒரு SQL WHERE பிரிவாக வடிவமைக்கப்பட்டுள்ளது (WHERE ஐத் தவிர). பூஜ்யத்தை கடந்து செல்வது கொடுக்கப்பட்ட URI க்கான அனைத்து வரிசைகளையும் வழங்கும்.

உதாரணமாக, உங்கள் முகவரி புத்தகத்தின் தேடல் நெடுவரிசையில் ஒரு எழுத்துக்களை (‘பி’ என்று சொல்லுங்கள்) உள்ளிட்டால், அது ‘பி’ என்று தொடங்கி அனைத்து தொடர்பு விவரங்களையும் வழங்கும். இருப்பினும், நீங்கள் தேடல் பட்டியில் எதையும் உள்ளிடவில்லை எனில், தொடர்புகளின் முழுமையான பட்டியல் மீட்டெடுக்கப்படுகிறது (இதுபோன்ற சந்தர்ப்பங்களில் தேர்வு விதிமுறை ‘பூஜ்யமாக’ அமைக்கப்பட்டுள்ளது).

4) தேர்வு வாதம்: நீங்கள் தேர்வில் “? கள்” சேர்க்கப்படலாம், அவை தேர்வில் தோன்றும் வரிசையில், தேர்வுஆர்க்ஸிலிருந்து வரும் மதிப்புகளால் மாற்றப்படும்.

5) வரிசை ஒழுங்கு: பிரிவு மூலம் SQL ஆர்டர் (தானே கட்டளையைத் தவிர்த்து). பூஜ்யத்தை கடந்து செல்வது, வரிசைப்படுத்தப்படாத முடிவுகளை பெறும்.

வினவலுக்கான குறியீடு எடுத்துக்காட்டு:

  • தொடர்புகளில் தொலைபேசி எண்களைத் தேடுகிறது
கர்சர் கர்சர் = contentresolver.query (ContactsContract.Contacts.CONTENT_URI, பூஜ்ய, பூஜ்ய, பூஜ்ய, பூஜ்ய) int count = cursor.getCount () if (count> 0) {string contactDetails = '' போது (cursor.moveToNext ()) { சரம் நெடுவரிசைஐடி = தொடர்புகள் தொடர்பு. தொடர்புகள்_ஐடி எண்ணாக கர்சர்இண்டெக்ஸ் = கர்சர்.ஜெட் கலம்இண்டெக்ஸ் (நெடுவரிசைஐடி) சரம் ஐடி = கர்சர்.ஜெட்ஸ்ட்ரிங் (கர்சர்இண்டெக்ஸ்) சரம் பெயர் = கர்சர்.ஜெட்ஸ்ட்ரிங் (கர்சர் .ஜெட்காலம்இண்டெக்ஸ் (கான்டாக்ட்ஸ். (cursor.getString (கர்சர் .getColumnIndex (ContactsContract.Contacts.HAS_PHONE_NUMBER))) என்றால் (numCount> 0) {கர்சர் phoneCursor = contentresolver.query (ContactsContract.CommonDataKinds.Phone.CONTENT_ONTENT_ONTENT , புதிய சரம் [] {id}, பூஜ்யம்) (phoneCursor.moveToNext ()) {string phoneNo = phoneCursor.getString (phoneCursor .getColumnIndex (ContactsContract.CommonDataKinds. Phone.NUMBER)) contactDetails + + 'பெயர்: ', தொலைபேசி எண்:' + phoneNo + ''} phoneCursor.close ()}}}

செருகல்

உங்கள் முகவரி புத்தகத்தில் புதிய தொடர்புகளைச் செருக விரும்புகிறீர்கள் என்று வைத்துக்கொள்வோம். உள்ளடக்க மதிப்புகள் பொருள் இந்த செருகல்களைச் செய்யப் பயன்படுகிறது. இதை அடைய உள்ளடக்க மதிப்பு பொருள் விசைகள் மற்றும் உள்ளடக்க வழங்குநர் நெடுவரிசைகள் பொருந்த வேண்டும். இதற்கான எடுத்துக்காட்டு இங்கே:

செருகுவதற்கான குறியீடு எடுத்துக்காட்டு:

  • “ரஜினிகாந்த்” மற்றும் “9988999888” என்ற எண்ணுடன் புதிய உள்ளீட்டைச் செருகுவதே இந்த நடவடிக்கை.
// ஆபரேஷன் அரேலிஸ்ட் ops = புதிய வரிசை பட்டியல் () int rawContactInsertIndex = ops.size () ops.add (ContentProviderOperation.newInsert (RawContacts.CONTENT_URI) .வித்வல்யூ (RawContacts.ACCOUNT_TYPE, nWNT) ()) ops.add (ContentProviderOperation .NewInsert (Data.CONTENT_URI) .வித்வால்பேக் குறிப்பு (தரவு. ) ops.add (ContentProviderOperation.newInsert (Data.CONTENT_URI) .வித்வால்பேக் குறிப்பு (தரவு. , தொலைபேசி. TYPE_MOBILE) .கட்டவும் ()) getContentResolver (). ApplyBatch (ContactsContract.AUTHORITY, ops)

புதுப்பித்தல்

உள்ளடக்க வழங்குநரைப் புதுப்பிக்க பின்வரும் வாதங்கள் பயன்படுத்தப்படுகின்றன:

ஒன்று) வெறுப்பு: உள்ளடக்க வழங்குநரின் URI

2) உள்ளடக்க மதிப்புகள்: தற்போதுள்ள தரவை மாற்றும் மதிப்புகள் இதில் உள்ளன.

3) தேர்வு விதி: புதுப்பிக்க குறிப்பிட்ட பதிவுகளைத் தேர்ந்தெடுக்க இது உதவும்

4) தேர்வு வாதம்: நீங்கள் தேர்வில் “? கள்” சேர்க்கப்படலாம், அவை தேர்வில் தோன்றும் வரிசையில், தேர்வுஆர்க்ஸிலிருந்து வரும் மதிப்புகளால் மாற்றப்படும்.

மீண்டும், தி உள்ளடக்க மதிப்புகள் பொருளின் விசைகள் உள்ளடக்க வழங்குநரின் நெடுவரிசைகளுடன் பொருந்த வேண்டும் இல்லையெனில், புதுப்பிப்பு ஏற்படாது.

புதுப்பிப்பதற்கான குறியீடு எடுத்துக்காட்டு:

  • பெயர் “ரஜினிகாந்த்” இருக்கும் தொலைபேசி எண்ணைப் புதுப்பித்தல்
சரம் எங்கே = ContactsContract.Data.DISPLAY_NAME + '=? . தொலைபேசி.நம்பர், “9876543210”) .கட்டவும் ()) getContentResolver (). AppBatch (ContactsContract.AUTHORITY, ops)

நீக்குதல்

உள்ளடக்க மதிப்புகள் வாதத்தைத் தவிர்த்து புதுப்பித்தல் போன்ற அதே வாதங்களை நீக்குதல் பயன்படுத்துகிறது, இது எந்த மாற்று மதிப்புகளும் இருக்காது என்பதால் தேவையில்லை.

நீக்குவதற்கான குறியீடு எடுத்துக்காட்டு:

  • பெயர் “ரஜினிகாந்த்” இருக்கும் தொடர்பை நீக்கு
சரம் எங்கே = ContactsContract.Data.DISPLAY_NAME + '=? . ) .applyBatch (ContactsContract.AUTHORITY, ops)

செருகு செயல்பாட்டின் போது, ​​URI அடைவு அடிப்படையில் இருக்க வேண்டும். மற்ற எல்லா நிகழ்வுகளிலும், URI கள் ஐடி அடிப்படையிலான அல்லது அடைவு அடிப்படையிலானதாக இருக்கலாம்.

திறமை திறந்த ஸ்டுடியோ டுடோரியல் பி.டி.எஃப்

நாங்கள் நம்புகிறோம் ஆரம்பநிலைகளுக்கான Android பயிற்சி: பகுதி 5 புரிந்து கொள்வது மிகவும் கடினம் அல்ல! அடுத்தடுத்த Android டுடோரியல்களில் உள்ளடக்க வழங்குநர்களைப் பற்றி மேலும் விவாதிப்போம். அதுவரை அடிப்படைகளைக் கற்றுக்கொண்டு மகிழுங்கள்!

இந்த Android டுடோரியலில் உங்களுக்கு ஏதேனும் சந்தேகம் இருக்கிறதா? எங்களிடம் கேளுங்கள்.

மகிழ்ச்சியான கற்றல்!

இந்த Android டுடோரியலை உருவாக்க பின்வரும் ஆதாரங்கள் பயன்படுத்தப்பட்டன! அதிகாரப்பூர்வ Android டெவலப்பர்கள் , Edureka.in

இது தொடர்பான இடுகைகளையும் நீங்கள் விரும்பலாம்: