超光速旅行者 2013-09-19 08:19 采纳率: 0%
浏览 2375

Android中创建含有参数的快捷方式,启动程序时读取参数

新手,请见谅。

如果我想传一段文本给快捷方式,并在下次启动此快捷方式时读取出来,代码是怎样的?
具体来说,程序运行起来想实现类似效果:

1、在程序中设定一个值:“张三是胖子”,或者“李四是胖子”
2、将将此程序生成为一个含有参数的快捷方式,参数为“张三是胖子”,或者“李四是胖子”
3、点生成的快捷方式运行程序,自动读取快捷方式内含的参数,显示出“张三是胖子”或“李四是胖子”

参考了一些代码,也查了Intent和Bundle等,还是不能解决问题,不知哪里错了。搞了很久没搞定,向大家求助。
下面这段代码尝试改过了,但没有成功,所以请给出一个详细的代码,实现上面三点功能,谢谢大家

查了一些资料,没能解决问题。比如下面这段代码尝试改过了:

/** 
 * 为程序创建桌面快捷方式 
 * 带参数 
 */  
private void addShortcut(){  
    Intent shortcut = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");  

    //快捷方式的名称  
    shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.app_name));  
    shortcut.putExtra("duplicate", false); //不允许重复创建  

    //指定当前的Activity为快捷方式启动的对象: 如 com.everest.video.VideoPlayer  
    //注意: ComponentName的第二个参数必须加上点号(.),否则快捷方式无法启动相应程序  
    ComponentName comp = new ComponentName(this.getPackageName(), "."+this.getLocalClassName());  
    shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent(Intent.ACTION_MAIN).setComponent(comp));  

    //快捷方式的图标  
    ShortcutIconResource iconRes = Intent.ShortcutIconResource.fromContext(this, R.drawable.ic_launcher);  
    shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, iconRes);  
    //添加要做的事情  
    Intent todo = new Intent(Intent.ACTION_CALL,Uri.parse("tel:10000"));  
    shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, todo);   
    sendBroadcast(shortcut);  
}  
  • 写回答

1条回答

  • ChatGPTᴼᴾᴱᴺᴬᴵ 2023-02-14 14:25
    关注

    该回答引用ChatGPT
    你可以使用Intent传递文本参数给快捷方式,然后在启动程序时获取这个参数并显示出来。以下是可能实现上面三个步骤的代码示例:


    在您的活动中添加以下方法来创建快捷方式:

    private void createShortcut(String text) {
        Intent shortcutIntent = new Intent(this, MainActivity.class);
        shortcutIntent.putExtra("text", text);
    
        Intent addIntent = new Intent();
        addIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
        addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
        addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "My Shortcut");
        addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,
                Intent.ShortcutIconResource.fromContext(this, R.drawable.ic_launcher));
    
        sendBroadcast(addIntent);
    }
    

    上面的方法将在主活动中创建一个名为“My Shortcut”的快捷方式,并将参数文本传递到Intent中。请注意,这个方法应该在主活动中调用,因为它使用了MainActivity.class作为快捷方式启动的目标。如果您使用的是不同的类名,则应该将其替换为相应的类名。


    在主活动中,您可以使用以下代码来获取传递的参数并显示它:

    String text = getIntent().getStringExtra("text");
    if (text != null) {
        // 显示文本
    }
    

    上面的代码将获取启动Intent中名为“text”的字符串参数。如果参数存在,则可以将其用于相应的操作,例如显示在TextView中。

    评论

报告相同问题?

悬赏问题

  • ¥15 vscode的问题提问
  • ¥50 切换TabTip键盘的输入法
  • ¥15 可否在不同线程中调用封装数据库操作的类
  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 Centos / PETGEM