এটি একটি পুরানো প্রশ্ন, তবে কোনও স্পষ্টত অ্যান্ড্রয়েড বৈশিষ্ট্য না থাকায় এখনও সক্রিয়। এবং ফেসবুকের ছেলেরা চারপাশে একটি কাজ খুঁজে পেয়েছিল - কোনওভাবে। আজ, আমি একটি উপায় খুঁজে পেয়েছি যা আমার পক্ষে কাজ করে। নিখুঁত নয় (এই উত্তরটির শেষে মন্তব্য দেখুন) তবে এটি কার্যকর!
মূল ধারণাটি হ'ল, আমি আমার অ্যাপ্লিকেশনটির শর্টকাটের আইকনটি আপডেট করি, যা আমার হোম স্ক্রিনে লঞ্চার দ্বারা নির্মিত। আমি যখন শর্টকাট-আইকনটিতে কিছু পরিবর্তন করতে চাই, আমি প্রথমে এটি সরিয়ে ফেলি এবং একটি নতুন বিটম্যাপ দিয়ে পুনরায় তৈরি করি।
কোডটি এখানে। এটি একটি বোতাম আছে increment। চাপলে, শর্টকাটটি এমন একটিতে প্রতিস্থাপিত হয় যার একটি নতুন গণনা নম্বর রয়েছে।
প্রথমে আপনার প্রকাশ্যে এই দুটি অনুমতি দরকার:
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
<uses-permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT" />
তারপরে শর্টকাটগুলি ইনস্টল এবং আনইনস্টল করার জন্য আপনার এই দুটি পদ্ধতি দরকার। shortcutAddপদ্ধতি এটি একটি নম্বরে কোনো বিটম্যাপ তৈরি করে। এটি কেবল এটি প্রদর্শিত হয় যে এটি আসলে পরিবর্তিত হয়। আপনি সম্ভবত কিছু অংশ দিয়ে সেই অংশটি পরিবর্তন করতে চান, আপনি আপনার অ্যাপ্লিকেশনটিতে চান।
private void shortcutAdd(String name, int number) {
// Intent to be send, when shortcut is pressed by user ("launched")
Intent shortcutIntent = new Intent(getApplicationContext(), Play.class);
shortcutIntent.setAction(Constants.ACTION_PLAY);
// Create bitmap with number in it -> very default. You probably want to give it a more stylish look
Bitmap bitmap = Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888);
Paint paint = new Paint();
paint.setColor(0xFF808080); // gray
paint.setTextAlign(Paint.Align.CENTER);
paint.setTextSize(50);
new Canvas(bitmap).drawText(""+number, 50, 50, paint);
((ImageView) findViewById(R.id.icon)).setImageBitmap(bitmap);
// Decorate the shortcut
Intent addIntent = new Intent();
addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, name);
addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON, bitmap);
// Inform launcher to create shortcut
addIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
getApplicationContext().sendBroadcast(addIntent);
}
private void shortcutDel(String name) {
// Intent to be send, when shortcut is pressed by user ("launched")
Intent shortcutIntent = new Intent(getApplicationContext(), Play.class);
shortcutIntent.setAction(Constants.ACTION_PLAY);
// Decorate the shortcut
Intent delIntent = new Intent();
delIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
delIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, name);
// Inform launcher to remove shortcut
delIntent.setAction("com.android.launcher.action.UNINSTALL_SHORTCUT");
getApplicationContext().sendBroadcast(delIntent);
}
এবং পরিশেষে, প্রথম শর্টকাট যুক্ত করতে এবং একটি ইনক্রিমেন্টিং কাউন্টার সহ শর্টকাট আপডেট করার জন্য এখানে দুটি শ্রোতা রয়েছে।
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test);
findViewById(R.id.add).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
shortcutAdd("changeIt!", count);
}
});
findViewById(R.id.increment).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
shortcutDel("changeIt!");
count++;
shortcutAdd("changeIt!", count);
}
});
}
মন্তব্য:
এই পদ্ধতি কাজ করে যদি আপনার অ্যাপটি হোম স্ক্রীনে যেমন বিভিন্ন অতিরিক্ত এর সঙ্গে সম্পর্কে আরো শর্টকাট নিয়ন্ত্রণ Intent। তাদের কেবল আলাদা আলাদা নাম প্রয়োজন যাতে ডানটি একটি আনইনস্টল করে পুনরায় ইনস্টল করা হয়।
অ্যান্ড্রয়েডের শর্টকাটগুলির প্রোগ্রাম্যাটিকাল হ্যান্ডলিং একটি সুপরিচিত, বহুল ব্যবহৃত কিন্তু আনুষ্ঠানিকভাবে সমর্থিত অ্যান্ড্রয়েড বৈশিষ্ট্য নয়। এটি ডিফল্ট লঞ্চারটিতে কাজ করছে বলে মনে হচ্ছে এবং আমি এটি অন্য কোথাও চেষ্টা করেছিলাম না। সুতরাং আমাকে দোষারোপ করবেন না, যখন আপনি এই ব্যবহারকারী-ইমেলগুলি পান "এটি আমার এক্সওয়াইজেড, ডাবল রুটেড, সুপার ব্লাস্টড ফোনে কাজ করে না"
Toastশর্টকাট ইনস্টলড হয়ে যাওয়ার পরে শর্টকাট আনইনস্টল করা অবস্থায় একটি লিখেছে writes সুতরাং আমি Toastপ্রতিবার আইকনটি পরিবর্তন করার সময় দু'জন পাই। এটি নিখুঁত নয়, তবে যতক্ষণ না আমার অ্যাপের বাকি অংশগুলি নিখুঁত ...