আমি মূলযুক্ত সায়ানোজেন ওএস 12 এবং টাস্কার ভি 4.8 সহ একটি ওয়ানপ্লাস ওয়ান করেছি । আমার পিসিতে একটি বাশ স্ক্রিপ্ট রয়েছে যা প্রস্থান করার সময় টাস্কারের কার্য সম্পাদন করা প্রয়োজন। আমি প্রশ্নটি দেখেছি এসএসএইচড্রয়েড (বা অ্যাডবি শেল) এর মাধ্যমে একটি টাস্কর টাস্ক চালানো এবং যদিও স্বীকৃত উত্তরটি আমার অ্যান্ড্রয়েডে কাজ করে না, সমাধানটি খুব সহজ। কোনও কার্য কল করতে, করুন:
adb shell su -c am broadcast -a net.dinglisch.android.tasker.ACTION_TASK --es "task_name" "TASK_NAME"
তবে, আমি সফলভাবে এটি করতে পারি। প্রস্থান করার সময়, আমার স্ক্রিপ্টটির প্রস্থান স্থিতিটি টাস্কে পাস করা দরকার যাতে আমি স্ক্রিপ্টের ফলাফলের ভিত্তিতে ডিভাইসে আমার প্রসেসিং চালিয়ে যেতে পারি।
Invoking কাজের জন্য সরকারী নির্দেশিকা , প্রোগ্রামারদের জন্য বোঝানো হয়, যাতে আমাকে সাহায্য করল না। ইনডেন্টের মাধ্যমে থ্রেড লঞ্চটি টাস্কের মাধ্যমে আমি একটি ভেরিয়েবলের মান পাস করার জন্য বিভিন্ন উপায়ে চেষ্টা করেছি, কিন্তু কোন ফলসই হয়নি।
আমরা যখন অন্য কোন কাজ থেকে কোনও কাজকে ডাকি তখন দুটি ভেরিয়েবল ব্যবহার করে মানগুলি পাস করার জন্য আমাদের নমনীয়তা দেওয়া হয়। নাম %par1
এবং ব্যবহার করে চালিত টাস্কটি দ্বারা এই দুটি ভেরিয়েবল গ্রহণ করা যেতে পারে %par2
। আমার ডেমো কাজের, সব আমি করছি সতর্কতা → ফ্ল্যাশ → পাঠ্য → হয় Show me: %arg1 %par1
।
# শুধুমাত্র প্রদর্শনের জন্য, আমি "লোল" নামে একটি কার্য তৈরি করেছি adb শেল su -c am সম্প্রচার -a net.dinglisch.android.tasker.ACTION_TASK - - "কার্য_নাম" "lol" --es "varNames" "par1" --es "varValues" "প্রাপ্ত" adb শেল su -c am সম্প্রচার -a net.dinglisch.android.tasker.ACTION_TASK - - "টাস্ক_নাম" "lol" --es "varNames" "% par1" --es "varValues" "প্রাপ্ত" adb শেল su -c am সম্প্রচার -a net.dinglisch.android.tasker.ACTION_TASK - - "কার্য_নাম" "lol" --es "varNames" "পার 1" --es "varValues" "প্রাপ্ত" # আমিও পরিবর্তন করেছি কার্যে পরিবর্তনশীল নাম par1 থেকে Par1 to adb শেল su -c am সম্প্রচার -a net.dinglisch.android.tasker.ACTION_TASK - - "কার্য_নাম" "lol" --es "বর্ণনাম" "% Par1" --es "varValues" "প্রাপ্ত"
এই সমস্ত আউটপুট দিয়ে কমান্ডগুলি নির্বাহ করে
Broadcasting: Intent { act=net.dinglisch.android.tasker.ACTION_TASK (has extras) }
Broadcast completed: result=0
এমনকি এই সম্প্রচার পাঠানোর কাজও
adb shell su -c am broadcast -a net.dinglisch.android.tasker.ACTION_TASK -d "task:lol" --es "arg1" "received" # I setup a profile to listen to this intent and receive extra from it in a task linked to profile
তবে সরাসরি কাজটি কল করা এবং তারপরে ভেরিয়েবলের মান পাঠানো কোনও কাজ করে না।
সুতরাং, আমার পদ্ধতির দোষ কোথায় এবং / অথবা আমি কেবল কোনও কমান্ড-লাইন ব্যবহার করে কোনও কার্যের একটি পরিবর্তনশীল মানতে কীভাবে প্রেরণ এবং গ্রহণ করব ?
নোট করুন যে আমি কোনও কাজের সন্ধান করছি না। আমি আমার স্ক্রিপ্ট থেকে ডিভাইসে প্রস্থান স্থিতি পাওয়ার জন্য অনেক কার্যকারিতা নিয়ে আসতে সক্ষম হয়েছি, তবে অভিপ্রায় ব্যবহার করা এগুলির মধ্যে সর্বাধিক সরল সমাধান বলে মনে হয় এবং আমিও এই কৌশলটি শিখতে চাই।
হালনাগাদ
আমি আমার জিজ্ঞাসা এখানে উত্থাপন:
- অফিসিয়াল ফোরাম - টাস্কার: কমান্ড-লাইন থেকে কোনও কাজ শুরু করুন এবং ভেরিয়েবল (গুলি) এবং / অথবা ডেটা এতে পাস করুন
- সাব্রেডডিট টাস্কার: কমান্ড-লাইন থেকে কোনও কাজ আহ্বান করা হলে ভেরিয়েবলগুলি কী পাস করা যায়?
- ইমেলটি ব্যবহার করে টাস্কারের বিকাশকারী, ব্যক্তিগতভাবে পেন্টের কাছে
আমি এই উত্তর ইমেল এবং ফোরামে উভয়ই পেন্টের কাছ থেকে পেয়েছি
আপনাকে স্ট্রিংআরলিলিস্টকে অতিরিক্ত বিজ্ঞাপন সংযোগের সাথে যুক্ত করতে সক্ষম করতে হবে, আপনি জানেন না যে অ্যাডবি এটি করতে পারে কিনা।
যদি তা হয় তবে ফর্ম্যাটটি দেখতে আপনি জাভা বুঝতে পারলে আপনি TaskerIntent.java http://tasker.dinglisch.net/code/TaskerIntent.java , ফাংশন অ্যাডলোক্যাল ভারিটেবল দেখতে পারেন।
এবং এই পরে আমি এই প্রশ্ন পোস্ট করার পরে surmised ।
এখানে উত্তর প্রতি , আমি বিশ্বাস করি একটি স্ট্রিং অ্যারে adb ব্যবহার করে পাস করা যেতে পারে। তাই আমি কিছু অনুসন্ধানের চেষ্টা করেছি কিন্তু আবার একটি মৃত পরিণতি পেলাম।
adb শেল su -c am সম্প্রচার -a net.dinglisch.android.tasker.ACTION_TASK - - "কার্য_নাম" "" LOL "--es" বর্ণনাম "" {"আরগ 1"} '--es "varValues"' {"সময় "} ' adb শেল su -c am সম্প্রচার -a net.dinglisch.android.tasker.ACTION_TASK - - "কার্য_নাম" "" LOL "--es" বর্ণনাম "" {"par1"} '--es "varValues"' {"সময় "} ' adb শেল su -c am সম্প্রচার -a net.dinglisch.android.tasker.ACTION_TASK - - "টাস্ক_নাম" "লোল" --es "বর্ণনাম" "{" par1 "\," আরগ 1 "} '--es" ভ্যারভ্যালু "'{" "\," আবার "}' পেয়েছে
আমি অভিপ্রায়টি ইউআরআই ব্যবহার করে রূপান্তর করেছিলাম এবং am to-intent-uri
সরাসরি কোনও সাফল্য না দিয়ে সরাসরি ইউআরআই প্রেরণের চেষ্টা করেছি।
নতুন আপডেট
পঠনের উপর ভিত্তি করে যেমন। 1 , 2 এবং 3 , আমি পুরোপুরি নিশ্চিত যে আর্গুমেন্ট adb shell am
ব্যবহার করে একটি স্ট্রিং অ্যারে পাস করা যেতে পারে --esa
। উদাহরণ:
adb shell su -c am broadcast -a net.dinglisch.android.tasker.ACTION_TASK --esa "par" "lol, cat" # value lol goes in par1 variable and value cat goes in par2 variable
এটি বলেছিল, এই কোয়েরিটি এখনও ব্যর্থ:
adb shell su -c am broadcast -a net.dinglisch.android.tasker.ACTION_TASK --es task_name "lol" --esa varNames "arg1, par1" --esa varValues "lol, cat"
নতুন আপডেট # 2
আপনি স্টক অ্যান্ড্রয়েড 6.0.1 একটি পরীক্ষার ভিত্তি হিসাবে ব্যবহার করতে পারেন।