27 মার্চ, 2025 থেকে, আমরা AOSP তৈরি করতে এবং অবদান রাখতে aosp-main
এর পরিবর্তে android-latest-release
ব্যবহার করার পরামর্শ দিচ্ছি। আরও তথ্যের জন্য, AOSP-তে পরিবর্তনগুলি দেখুন।
মনিটর স্ট্যাটাস, মনিটর স্ট্যাটাস
সেভ করা পৃষ্ঠা গুছিয়ে রাখতে 'সংগ্রহ' ব্যবহার করুন
আপনার পছন্দ অনুযায়ী কন্টেন্ট সেভ করুন ও সঠিক বিভাগে রাখুন।
একটি সাধারণ ইন্সট্রুমেন্ট ক্লাস্টার ড্রাইভিং, কল এবং মিডিয়া তথ্য আপডেট করে যখনই নতুন ডেটা আসে৷ Android একটি OEM-এর উপকরণ ক্লাস্টারকে সহজেই আপ-টু-ডেট স্থিতি পেতে সক্ষম করতে নিম্নলিখিত API প্রদান করে৷
ড্রাইভিং অবস্থা
নেভিগেশন চলমান থাকাকালীন ড্রাইভিং দিকনির্দেশ ইভেন্ট পাঠানো হয়। ফাইল packages/services/Car/car-lib/src/android/car/cluster/renderer/NavigationRenderer.java
এ ইনস্ট্রুমেন্ট ক্লাস্টারে একটি নেভিগেশন অ্যাপ রেন্ডারারের বিমূর্ত পদ্ধতি রয়েছে।
একটি বর্ধিত InstrumentClusterRenderingService
এ, এই পদ্ধতিগুলি নিম্নরূপ:
public class MyClusterRenderingService extends
InstrumentClusterRenderingService {
...
@Override protected NavigationRenderer getNavigationRenderer() {
return new NavigationRenderer() {
@Override CarNavigationInstrumentCluster getNavigationProperties() {...}
@Override void onStartNavigation() {...}
@Override void onStopNavigation() {...}
@Override void onNextTurnChanged(int event, String road, int turnAngle,
int turnNumber, Bitmap image, int turnSide) {...}
@Override void onNextTurnDistanceChanged(int distanceMeters, int
timeSeconds) {...}
};
}
}
আপনি পছন্দসই তথ্য প্রদর্শন করতে এই পদ্ধতিতে কাস্টম অ্যাকশন (যেমন রেন্ডারিং) যোগ করতে পারেন।
কল স্ট্যাটাস
কল স্থিতি নিরীক্ষণ করতে, নিম্নলিখিত পদক্ষেপগুলি ব্যবহার করুন:
-
android.telecom.InCallService
প্রসারিত করুন। public class ClusterInCallService extends InCallService {
...
AndroidManifest.xml
এ পরিষেবাটি নিবন্ধন করুন৷ <service android:name="com.android.car.cluster.sample.ClusterInCallService"
android:permission="android.permission.BIND_INCALL_SERVICE"
android:exported="false">
- ওভাররাইড onCallAdded এবং onCallRemoved.
public void onCallAdded(Call call) {
...
call.registerCallback(mPhoneCallback);
mPhoneCallback.onStateChanged(call, call.getState());
}
public void onCallRemoved(Call call) {
...
call.unregisterCallback(mPhoneCallback);
}
- কল স্ট্যাটাস পরিবর্তন ইভেন্টগুলি গ্রহণ করতে কলব্যাক নিবন্ধন করুন (
Call#registerCallback
)। private static class PhoneCallback extends Callback {
...
public void onStateChanged(Call call, int state) {...}
}
- যোগাযোগের তথ্য টানতে সামগ্রী প্রদানকারী ব্যবহার করুন:
ContactsContract.PhoneLookup, ContactsContract.Contacts#openContactPhotoInputStream
)।
কল স্ট্যাটাস মনিটরের নমুনা কোডের জন্য, দেখুন:
packages/services/Car/tests/InstrumentClusterRendererSample/src/com/android/car/cluster/sample/ClusterInCallService.java
বিষয়বস্তু প্রদানকারী নমুনা কোডের জন্য, দেখুন:
packages/services/Car/tests/InstrumentClusterRendererSample/src/com/android/car/cluster/sample/TelecomUtils.java
মিডিয়ামেটাডেটা (যেমন অ্যালবাম বা গানের শিরোনাম বা কভার ইমেজ) বা প্লেব্যাক স্টেট (বাফারিং, পজ, প্লে এবং স্টপ) এর পরিবর্তন সম্পর্কিত ইভেন্টগুলি পাওয়ার সময় আপনি মিডিয়া স্ট্যাটাস আপডেট করার জন্য সিস্টেমটিকে কনফিগার করতে পারেন। মিডিয়া স্ট্যাটাস আপডেট করতে:
-
MediaSessionManager
ব্যবহার করুন এবং প্রাথমিক নিয়ামক পান ( #getActiveSessions(null)[0]
)। - কলব্যাক নিবন্ধন করুন (
MediaController#Callback
)। - সক্রিয় অধিবেশনে সাবস্ক্রাইব করুন পরিবর্তিত
MediaSessionManager#addOnActiveSessionsChangedListener(...)
।
বিস্তারিত জানার জন্য, দেখুন:
এই পৃষ্ঠার কন্টেন্ট ও কোডের নমুনাগুলি Content License-এ বর্ণিত লাইসেন্সের অধীনস্থ। Java এবং OpenJDK হল Oracle এবং/অথবা তার অ্যাফিলিয়েট সংস্থার রেজিস্টার্ড ট্রেডমার্ক।
2025-07-29 UTC-তে শেষবার আপডেট করা হয়েছে।
[[["সহজে বোঝা যায়","easyToUnderstand","thumb-up"],["আমার সমস্যার সমাধান হয়েছে","solvedMyProblem","thumb-up"],["অন্যান্য","otherUp","thumb-up"]],[["এতে আমার প্রয়োজনীয় তথ্য নেই","missingTheInformationINeed","thumb-down"],["খুব জটিল / অনেক ধাপ","tooComplicatedTooManySteps","thumb-down"],["পুরনো","outOfDate","thumb-down"],["অনুবাদ সংক্রান্ত সমস্যা","translationIssue","thumb-down"],["নমুনা / কোড সংক্রান্ত সমস্যা","samplesCodeIssue","thumb-down"],["অন্যান্য","otherDown","thumb-down"]],["2025-07-29 UTC-তে শেষবার আপডেট করা হয়েছে।"],[],[],null,["# Monitor status\n\nA typical instrument cluster updates driving, call, and media information whenever new data\ncomes in. Android provides the following API to enable an OEM's instrument cluster to receive\nup-to-date status easily.\n\nDriving status\n--------------\n\nDriving direction events are sent while navigation is ongoing. The file\n`packages/services/Car/car-lib/src/android/car/cluster/renderer/NavigationRenderer.java`\ncontains abstract methods for a navigation app renderer in the instrument cluster.\n\nIn an extended `InstrumentClusterRenderingService`, these methods are as follows: \n\n```transact-sql\npublic class MyClusterRenderingService extends\nInstrumentClusterRenderingService {\n ...\n @Override protected NavigationRenderer getNavigationRenderer() {\n return new NavigationRenderer() {\n @Override CarNavigationInstrumentCluster getNavigationProperties() {...}\n @Override void onStartNavigation() {...}\n @Override void onStopNavigation() {...}\n @Override void onNextTurnChanged(int event, String road, int turnAngle,\n int turnNumber, Bitmap image, int turnSide) {...}\n @Override void onNextTurnDistanceChanged(int distanceMeters, int\n timeSeconds) {...}\n };\n }\n}\n```\n\nYou can add custom actions (such as rendering) to these methods to display desired\ninformation.\n\nCall status\n-----------\n\nTo monitor call status, use the following steps:\n\n1. Extend `android.telecom.InCallService`. \n\n ```gdscript\n public class ClusterInCallService extends InCallService {\n ...\n ```\n2. Register the service in `AndroidManifest.xml`. \n\n ```gdscript\n \u003cservice android:name=\"com.android.car.cluster.sample.ClusterInCallService\"\n android:permission=\"android.permission.BIND_INCALL_SERVICE\"\n android:exported=\"false\"\u003e\n ```\n3. Override onCallAdded and onCallRemoved. \n\n ```verilog\n public void onCallAdded(Call call) {\n ...\n call.registerCallback(mPhoneCallback);\n mPhoneCallback.onStateChanged(call, call.getState());\n }\n public void onCallRemoved(Call call) {\n ...\n call.unregisterCallback(mPhoneCallback);\n }\n ```\n4. Register callbacks to receive call status change events (`Call#registerCallback`). \n\n ```gdscript\n private static class PhoneCallback extends Callback {\n ...\n public void onStateChanged(Call call, int state) {...}\n }\n ```\n5. Use content providers to pull contact information: \n `ContactsContract.PhoneLookup, ContactsContract.Contacts#openContactPhotoInputStream`).\n\nFor call status monitor sample code, see: \n\n`packages/services/Car/tests/InstrumentClusterRendererSample/src/com/android/car/cluster/sample/ClusterInCallService.java`\n\nFor content provider sample code, see: \n\n`packages/services/Car/tests/InstrumentClusterRendererSample/src/com/android/car/cluster/sample/TelecomUtils.java`.\n\nMedia status\n------------\n\nYou can configure the system to update the media status when it receive events related to a\nchange in MediaMetadata (such as album or song title or cover image) or playback state (buffering,\npause, play, and stop). To update the media status:\n\n1. Use `MediaSessionManager` and get primary controller (`#getActiveSessions(null)[0]`).\n2. Register callbacks (`MediaController#Callback`).\n3. Subscribe to on active session changed `MediaSessionManager#addOnActiveSessionsChangedListener(...)`.\n\nFor details, see:\n\n- [packages/services/Car/+/android-8.1.0_r9/tests/InstrumentClusterRendererSample/src/com/android/car/cluster/sample/MediaStateMonitor.java](https://android.googlesource.com/platform/packages/services/Car/+/android-8.1.0_r9/tests/InstrumentClusterRendererSample/src/com/android/car/cluster/sample/MediaStateMonitor.java)\n- [packages/services/Car/tests/InstrumentClusterRendererSample/src/com/android/car/cluster/sample/InstrumentClusterController.java](https://android.googlesource.com/platform/packages/services/Car/+/android-8.1.0_r9/tests/InstrumentClusterRendererSample/src/com/android/car/cluster/sample/InstrumentClusterController.java)"]]