টার্মিনাল থেকে "সেটিংস" এর অধীনে তালিকাভুক্ত একটি ক্রিয়াকলাপ শুরু করা (বা অ্যাডবি শেল)


13

আমি এই ক্রিয়াকলাপটি টার্মিনাল থেকে শুরু করতে চাই: com.android.settings.Settings$PowerUsageSummaryActivity

আমি চেষ্টা করেছিলাম

am start -S com.android.settings/.Settings$PowerUsageSummaryActivity

এবং এটি আমি পাই:

Stopping: com.android.settings
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.android.settings/.Settings }

সমস্যা am startকমান্ড বাদ$PowerUsageSummaryActivity , অংশ তাই মূলত আমি শুধু মান "সেটিংস" মেনু খোলা পেয়ে করছি। টার্মিনাল থেকে আমি কীভাবে সেই নির্দিষ্ট "বিদ্যুত ব্যবহারের সংক্ষিপ্তসার" পৃষ্ঠাটি খুলতে পারি?


2
আপনি কি এটিকে একক উদ্ধৃতিতে স্থাপন করার চেষ্টা করেছেন, যেমন 'com.android.settings/.Settings$PowerUsageSummaryActivity'- বা এর $মতো পালিয়ে যেতে com.android.settings/.Settings\$PowerUsageSummaryActivity- যা শাবলটিতে কোনও চলক নির্দেশিত না করে যখন আক্ষরিক $লক্ষণগুলির সাথে ডিল করার সময় স্বাভাবিক জিনিস হয় ?
ইজি

টার্মিনাল থেকে শীর্ষে টাস্কারের রানলগ ক্রিয়াকলাপটি কীভাবে? লগ উইন্ডোটি খোলার জন্য টাসকারের একটি 3 ডট মেনু রয়েছে।
নিকোলা আল।

উত্তর:


12

আমি আমার মন্তব্যে যেমন লিখেছি, শেল প্রম্পটে (বা শেল স্ক্রিপ্টগুলিতে) কাজ করার সময় কিছু বিশেষ অক্ষরের অতিরিক্ত যত্ন নেওয়া দরকার। এর মধ্যে একটি হ'ল $সাইন, যা সাধারণত একটি চলককে নির্দেশ করে। যদি এটি আক্ষরিকভাবে নেওয়া উচিত, আপনার এড়াতে হবে (বা একক উদ্ধৃতি দ্বারা পুরো স্ট্রিংটি আবদ্ধ)। উদ্ধৃতি চিহ্নের জন্য অনুরূপ নিয়ম।

আপনার কমান্ডটি কীভাবে একজন পালানো লোকের সাথে দেখতে হবে $, আপনি ইতিমধ্যে ওয়ানরেথার উত্তরটি খুঁজে পেতে পারেন :

shell@android:/ # am start -n com.android.settings/.Settings\$PowerUsageSummaryActivity

এর সামনে "ব্যাক-স্ল্যাশ" নোট করুন $- এটি পালানোর চিহ্ন sign উদ্ধৃতি চিহ্ন বা ফাঁকা জন্য একই ব্যবহার করুন, যদি আপনার আদেশে কিছুটা আক্ষরিকভাবে নেওয়া হয়, যেমন eg

myscript.sh first\ parameter\!
myscript.sh "first parameter!"

উভয়ই একই কাজ করবে: স্ট্রিংটিকে একটি প্যারামিটার তৈরি করা। আপনার am startআদেশের উদাহরণে , পার্সিংয়ের ক্ষেত্রে এটি ঘটেছিল:

  • কমান্ড প্রয়োগ করুন: am
  • প্যারামিটার 1: start
  • প্যারামিটার 2: -S
  • প্যারামিটার 3: com.android.settings/.Settings$PowerUsageSummaryActivity
    • একটি আছে $, ব্যাখ্যা করছে: ভেরিয়েবল $PowerUsageSummaryActivityসেট করা নেই, তাই খালি
    • উপসংহার: 3 পরামিতি হয় com.android.settings/.Settings

আরও লক্ষ করুন যে আপনি যদি এটির মাধ্যমে সরাসরি চালনা করেন adb shellতবে কমান্ডটি দু'বার শেল পার্সিংয়ের মধ্য দিয়ে যায়, সুতরাং আপনাকে কমান্ডটি পুনরায় বা উদ্ধৃতি দেওয়া দরকার , যেমন:

user@desktop:~$ adb shell am start -n 'com.android.settings/.Settings\$PowerUsageSummaryActivity'

ধন্যবাদ! ওহ, আমি কীভাবে পালাতে ভুলে যেতে পারি $ ... আমি যথাযথভাবে লজ্জা পাচ্ছি :)
জুনিচো

জীবনের ছোট্ট জিনিসগুলি ... উপেক্ষা করা সহজ :) বিটিডব্লিউ: যদি এটি আপনার সমস্যার সমাধান করে তবে একটি উত্তরকে "স্বীকৃত" হিসাবে চিহ্নিত করুন (তার পাশের চেকমার্কটি ক্লিক করুন) [এবং অন্যটিকে আপভোট করুন :)] - তাই এটি অন্য লোকের একটি অনুরূপ ফাঁদে :) লঘুপাত পরিষ্কার
Izzy

ওহ আমি চেকমার্কটি পেয়েছি। সুতরাং আমি এইভাবেই উত্তরটি গ্রহণ করি ... ধন্যবাদ আমি প্রথমবার
স্ট্যাকেক্সচেঞ্জ

আপনি যে কোনও সময় স্বাগত জানাই :) এখন আপনি দেখতে পাচ্ছেন যে এটি এখানে কতটা ভালভাবে কাজ করে: শব্দটি ছড়িয়ে দিন :)
ইজজি

3
ব্যাশ সঙ্গে, আমার ক্ষেত্রে, শুধুমাত্র এই কাজ: adb shell 'am start -n com.android.settings/.Settings\$PowerUsageSummaryActivity'। কেন জানি না।
ফায়ারল্ড

5

Escape $উপ-বর্গ নামে এবং এটি কাজ করা উচিত:

shell@android:/ # am start -S com.android.settings/.Settings\$PowerUsageSummaryActivity
Starting: Intent { cmp=com.android.settings/.Settings$PowerUsageSummaryActivity }
shell@android:/ #

এর পরিবর্তে অন্য একটি বিকল্প হ'ল পাওয়ার ব্যবহারের স্ক্রিনটি যে অভিপ্রায়টি শোনেনি সেই উদ্দেশ্যটি প্রেরণ করা:

shell@android:/ # am start -a android.intent.action.POWER_USAGE_SUMMARY

<action>সেটিংস "অ্যাপ্লিকেশন" (যা গিটহাবটিতে দেখা যায় ) এর জন্য অ্যান্ড্রয়েড ম্যানিফেস্ট.এক্সএমএল ফাইলটিতে ট্যাগগুলি দেখে আপনি অভিপ্রায়গুলি সন্ধান করতে পারেন । উদাহরণস্বরূপ, এখানে ক্রিয়াকলাপ সংজ্ঞাটি এখানে রয়েছে Settings$PowerUsageSummaryActivity:

<activity android:name="Settings$PowerUsageSummaryActivity"
        android:label="@string/power_usage_summary_title"
        android:uiOptions="none"
        android:taskAffinity=""
        android:excludeFromRecents="true">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <action android:name="android.intent.action.POWER_USAGE_SUMMARY" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="com.android.settings.SHORTCUT" />
    </intent-filter>
    <!-- Some other stuff here... -->
</activity>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.