Я пытаюсь передать данные с помощью ярлыка, который создается, когда пользователь нажимает кнопку. Таким образом, когда пользователь запускает приложение через этот конкретный ярлык, MainActivity получает эти данные и принимает решение по этим данным.
Например, я хочу передать URL-адрес веб-сайта. Если пользователь нажимает кнопку 1, URL-адрес для этого ярлыка будет «http://expample1.com», а при нажатии кнопки 2 будет создан новый ярлык со вторым URL-адресом «http://expample2.com».
Я просмотрел другой вопрос, но они только о создании ярлыка. Другой метод, с которым я столкнулся, - это использование ShortcutManager, но он поддерживает только API level 25, описанный выше.
Это код для создания ярлыка, который я написал. Как теперь добавить в него данные для использования?
public void onBtnSecondShortCutCreate(View view) {
Intent shortcutIntent = new Intent(getApplicationContext(), SecondActivity.class);
shortcutIntent.setAction(Intent.ACTION_MAIN);
Intent addIntent = new Intent();
addIntent.putExtra("SecondMessage","Second Activity");
addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "beSpider Second app");
addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,Intent.ShortcutIconResource.fromContext(getApplicationContext(), R.drawable.logo));
addIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
getApplicationContext().sendBroadcast(addIntent);
}
Заданный вами вопрос касается использования ShortcutManager, минимальная поддержка которого соответствует уровню API 25, а минимальный уровень API моего приложения - 15.




Что ж, этот API был добавлен в API уровня 1. Даем вам пример использования:
AndroidManifest.xml
<?xml version = "1.0" encoding = "utf-8"?>
<manifest xmlns:android = "http://schemas.android.com/apk/res/android"
xmlns:tools = "http://schemas.android.com/tools"
package = "exploitrme.shortcuttest">
<uses-permission android:name = "com.android.launcher.permission.INSTALL_SHORTCUT" />
<uses-permission android:name = "com.android.launcher.permission.UNINSTALL_SHORTCUT" />
<application
android:allowBackup = "false"
android:icon = "@mipmap/ic_launcher"
android:label = "@string/app_name"
android:roundIcon = "@mipmap/ic_launcher_round"
android:supportsRtl = "true"
android:theme = "@style/AppTheme"
tools:ignore = "GoogleAppIndexingWarning">
<activity
android:name = ".MainActivity"
android:exported = "true">
<intent-filter>
<action android:name = "android.intent.action.MAIN" />
<category android:name = "android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
MainActivity.class
package exploitrme.shortcuttest;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (getIntent().getIntExtra("toe", 501) != 1123) {
addShortcut();
}else{
Toast.makeText(getApplicationContext(),"Started From Shortcut",Toast.LENGTH_LONG).show();
}
}
void addShortcut() {
Intent shortcutIntent = new Intent(getApplicationContext(), MainActivity.class);
shortcutIntent.setAction(Intent.ACTION_MAIN);
shortcutIntent.putExtra("toe", 1123);
Intent addIntent = new Intent();
addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "SAMPLE SHORTCUT!!");
addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource.fromContext(getApplicationContext(), R.drawable.ic_ac_unit_black_24dp));
addIntent.putExtra("duplicate", false);
addIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
getApplicationContext().sendBroadcast(addIntent);
}
}
[РЕДАКТИРОВАТЬ]: обновлено примером приложения, которое я только что создал, потому что предыдущий ответ был вам непонятен.
Это не работает. Это не создание значка. Я обновил вопрос и добавил написанный мной код с помощью другого вопроса. Пожалуйста, теперь помогите мне добавить в него данные.
Действительно? Пожалуйста, проверьте это: youtube.com/watch?v=_JbEHQQVmrs
Я обновил код только что созданным образцом приложения и ПРОСТО ПРОВЕРИЛ его на Android 4.4, посмотрите видео, там все работает нормально.
Вы просто копируете и вставляете приведенный выше код и сначала проверяете, работает ли он. Это универсальный процесс, который должен работать на устройстве Kitkat, если вы не играли с его ОС.
Я здесь ради этого, нет, спасибо. Для любой помощи не стесняйтесь спрашивать снова
проверьте это stackoverflow.com/questions/40446733/…