সংক্ষেপে
সার্ভিস কল কমান্ড সম্পর্কিত কোডটি কেবল সেই ক্রিয়াকলাপ এবং আদেশের আর্গুমেন্ট যা এই সেবার সহায়িকার ফাইলে ফাংশনটি ঘটে। এখানে একটি বাক্য গঠন
service call <your_service_name> <number at which the function appears in your_service_name.aidl> <type of the argument like i32 or i64> <argument>
বিস্তারিতভাবে
আমি এটি সম্পর্কে জানার জন্য অনেক সমস্যার মুখোমুখি হয়েছি এবং তাই আমি ক্লিপবোর্ড পরিষেবার সাহায্যে সমাধানটি ভাগ করব।
প্রথমে আপনাকে যে পরিষেবাটি আগ্রহী সে সম্পর্কে আপনার জানতে হবে -
তার জন্য আপনাকে নির্দিষ্ট অ্যান্ড্রয়েড সিস্টেমের জন্য সেখানে যে সমস্ত পরিষেবা রয়েছে তা টাইপ করে সন্ধান করতে হবে
adb shell service list
আপনি যা পাবেন তা এখানে -
.
.
.
59 ethernet: [android.net.IEthernetManager]
60 wifip2p: [android.net.wifi.p2p.IWifiP2pManager]
61 rttmanager: [android.net.wifi.IRttManager]
62 wifiscanner: [android.net.wifi.IWifiScanner]
63 wifi: [android.net.wifi.IWifiManager]
64 overlay: [android.content.om.IOverlayManager]
65 netpolicy: [android.net.INetworkPolicyManager]
66 netstats: [android.net.INetworkStatsService]
67 network_score: [android.net.INetworkScoreService]
68 textservices: [com.android.internal.textservice.ITextServicesManager]
69 network_management: [android.os.INetworkManagementService]
70 clipboard: [android.content.IClipboard]
71 statusbar: [com.android.internal.statusbar.IStatusBarService]
.
.
.
যেহেতু আমি ক্লিপবোর্ড পরিষেবাতে আগ্রহী, এটি এখানে কেমন দেখাচ্ছে
70 clipboard: [android.content.IClipboard]
সুতরাং এখান থেকে আমরা সংক্ষিপ্ত করতে পারি যে পরিষেবার নামটি ক্লিপবোর্ড পরিষেবা এবং প্যাকেজের পথটি অ্যান্ড্রয়েড কন্টেন্ট.আইসিপ্লাইপর্ড
তারপরে আপনাকে আইসিলিপবোর্ড.এইডল যেখানে রয়েছে তার পুরো পথটি জানতে হবে।
আপনার আইসিলিপবোর্ড.এইডল এর জন্য গুগলে অনুসন্ধান করতে হবে তা জানতে।
ফলাফলগুলিতে আপনাকে অ্যান্ড্রয়েড.googlesource.com ওয়েবসাইট থেকে কিছু সন্ধান করতে হবে, যেমন আমার ক্ষেত্রে-
https://android.googlesource.com/platform/frameworks/base.git/+/android-4.2.2_r1/core/java/android/content/IClipboard.aidl
সুতরাং + / android-4.2.2_r1 এর পরে আপনার পথটি যেখানে রয়েছে that সেই পথটি পথ_পথ_ক্লিপবোর্ড.ইডল = হতে দিন
/core/java/android/content/IClipboard.aidl
যেহেতু এই পরিষেবা কল কোডগুলি অ্যান্ড্রয়েড সিস্টেমের উপর নির্ভরশীল, তাই আপনার অ্যান্ড্রয়েড ওএস নামটি জানা দরকার-আমার ক্ষেত্রে এটি 8.1.0 হয়
তাই আমি নিম্নলিখিত ওয়েবসাইটটিতে যাব যেখানে গুগল সেখানে কোড রাখে এবং আমার ওএস সংস্করণটি আমার থেকে নির্বাচন করবে পৃষ্ঠার জন্য বাম হাত -
https://android.googlesource.com/platform/frameworks/base/
আমার ক্ষেত্রে এটি অ্যান্ড্রয়েড -8.1.0_r50. আমি এটিতে ক্লিক করব এবং তারপরে আমার ইউআরএলটি দেখতে এটির মতো হবে
https://android.googlesource.com/platform/frameworks/base/+/android-8.1.0_r51
এবং তারপরে path_of_clipboard.aidl যুক্ত করার পরে, আমার সম্পূর্ণ ইউআরএল দেখতে পাবেন
https://android.googlesource.com/platform/frameworks/base/+/android-8.1.0_r51/core/java/android/content/IClipboard.aidl
এখানে ইন্টারফেসে অনেক পদ্ধতি থাকবে my আমার ক্ষেত্রে লাইক দিন
void setPrimaryClip(in ClipData clip, String callingPackage);
ClipData getPrimaryClip(String pkg);
ClipDescription getPrimaryClipDescription(String callingPackage);
boolean hasPrimaryClip(String callingPackage);
void addPrimaryClipChangedListener(in IOnPrimaryClipChangedListener listener,
String callingPackage);
void removePrimaryClipChangedListener(in IOnPrimaryClipChangedListener listener);
/**
* Returns true if the clipboard contains text; false otherwise.
*/
boolean hasClipboardText(String callingPackage);
সুতরাং প্রথম পদ্ধতির কোড যেমন সেটপ্রাইমারি ক্লিপটি প্রথম স্থানে যেমন ঘটেছিল তখন 1 হবে এবং শেষ পদ্ধতির জন্য হ্যাসক্লিপবোর্ডটেক্সটটি 7 হবে কারণ এটি সহায়ক ফাইলের সপ্তম স্থানে রয়েছে। একইভাবে অন্যান্য পদ্ধতির জন্য।
সুতরাং আমি সপ্তম পদ্ধতিটি কল করতে চাইলে আমি টাইপ করব
adb shell service call clipboard 7
আপনি হয়ত দেখেছেন যে আমি কলিংপ্যাকেজ নামটি রাখি নি কারণ এটি প্রয়োজনীয় নয়।
যদি পদ্ধতিটিতে যুক্তিগুলির প্রয়োজন হয় তবে আপনি উদাহরণ হিসাবে শো হিসাবে এটি পাস করতে পারেন।
আসুন এমন একটি পদ্ধতি ধরে নেওয়া যাক যার কোডটি ক্লিপবোর্ডে 8 এবং এটি দেখতে এরকম দেখাচ্ছে -
getDemo(String arg1, int arg2, boolean arg3)
সুতরাং আমি এটি এইভাবে কল করব
adb shell call clipboard 8 s16 "first_argument" i32 12 i32 1
এখানে আই 32 স্ট্রিংয়ের জন্য 32 বিট ইন্টিজার এবং এস 16। উদাহরণস্বরূপ আমরা বুলিয়ান মানকে পূর্ণসংখ্যা হিসাবে পাস করতে পারি।
বুলিয়ান পূর্ণসংখ্যায় 1 টি সত্য এবং 0 টি মিথ্যা বলে।
টিআইপি সেই অ্যাডবি কমান্ডটি কার্যকর করার সময় যে কোনও ত্রুটি ঘটেছে তা পরীক্ষা করতে লগক্যাটটি খোলা রাখুন (অ্যান্ড্রয়েড স্টুডিওয়ের মতো)।
উৎস