Android 应用程序快捷方式通知
Android app shortcut notification
我像这样在启动器中为我的应用程序添加快捷方式。
public void create(String name, Bitmap bitmap, int appID) {
final Intent shortcutIntent = new Intent(context, SplashActivity.class);
shortcutIntent.setAction(Intent.ACTION_MAIN);
final Intent intent = new Intent();
intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
intent.putExtra("duplicate", false);
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, name);
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON, bitmap);
intent.putExtra(Intent.EXTRA_TEXT, appID);
intent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
context.sendBroadcast(intent);
}
我想在通过此快捷方式打开应用程序时收到一些通知,并从中获取一些参数(快捷方式名称和 ID)。尝试使用 BroadcastReceiver,但它仅在创建快捷方式时有效。当我用这个快捷方式打开应用程序时,BroadcastReceiver 什么也没给我。
BroadcastReceiver rec = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Log.d(TAG, "intent received");
if (intent.hasExtra(Intent.EXTRA_TEXT)) {
Log.d(TAG, "Shortcut ID: " + intent.getIntExtra(Intent.EXTRA_TEXT, 0));
Log.d(TAG, "Shortcut name: " + intent.getStringExtra(Intent.EXTRA_SHORTCUT_NAME));
}
}
};
IntentFilter filter = new IntentFilter("com.android.launcher.action.INSTALL_SHORTCUT");
context.registerReceiver(rec, filter);
如何得到通知?
I want to get some notification when app opened by this shortcut
您的 SplashActivity
将启动。如果您将 activity 用于其他用途,并且想要区分两者,请不要将快捷方式转到 SplashActivity
,而是将其转到其他用途。
When i open app with this shortcut, BroadcastReceiver gives me nothing.
正确。
首先,不要求主屏幕关注您的INSTALL_SHORTCUT
请求。
其次,当用户点击该快捷方式时,不要求主屏幕发送任何类型的广播。所期望的只是主屏幕启动与该快捷方式关联的 activity。
我像这样在启动器中为我的应用程序添加快捷方式。
public void create(String name, Bitmap bitmap, int appID) {
final Intent shortcutIntent = new Intent(context, SplashActivity.class);
shortcutIntent.setAction(Intent.ACTION_MAIN);
final Intent intent = new Intent();
intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
intent.putExtra("duplicate", false);
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, name);
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON, bitmap);
intent.putExtra(Intent.EXTRA_TEXT, appID);
intent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
context.sendBroadcast(intent);
}
我想在通过此快捷方式打开应用程序时收到一些通知,并从中获取一些参数(快捷方式名称和 ID)。尝试使用 BroadcastReceiver,但它仅在创建快捷方式时有效。当我用这个快捷方式打开应用程序时,BroadcastReceiver 什么也没给我。
BroadcastReceiver rec = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Log.d(TAG, "intent received");
if (intent.hasExtra(Intent.EXTRA_TEXT)) {
Log.d(TAG, "Shortcut ID: " + intent.getIntExtra(Intent.EXTRA_TEXT, 0));
Log.d(TAG, "Shortcut name: " + intent.getStringExtra(Intent.EXTRA_SHORTCUT_NAME));
}
}
};
IntentFilter filter = new IntentFilter("com.android.launcher.action.INSTALL_SHORTCUT");
context.registerReceiver(rec, filter);
如何得到通知?
I want to get some notification when app opened by this shortcut
您的 SplashActivity
将启动。如果您将 activity 用于其他用途,并且想要区分两者,请不要将快捷方式转到 SplashActivity
,而是将其转到其他用途。
When i open app with this shortcut, BroadcastReceiver gives me nothing.
正确。
首先,不要求主屏幕关注您的INSTALL_SHORTCUT
请求。
其次,当用户点击该快捷方式时,不要求主屏幕发送任何类型的广播。所期望的只是主屏幕启动与该快捷方式关联的 activity。