有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Whatsapp意图

如何在特定时间从我的应用程序自动向某个号码发送whatsapp消息?有安卓的意图吗

字符串toNumber=“91xxxxxxxxx”

    PackageManager packageManager = context.getPackageManager();
    Intent intent = new Intent(Intent.ACTION_VIEW);

    try {
        String url = "https://api.whatsapp.com/send?phone="+ toNumber +"&text=" + URLEncoder.encode(whatsAppMessage, "UTF-8");
        intent.putExtra(Intent.EXTRA_TEXT, whatsAppMessage);
        intent.setType("text/plain");
        intent.putExtra(Intent.EXTRA_STREAM, whatsAppImage);
        intent.setType("image/jpeg");
        intent.setPackage("com.whatsapp");
        intent.setData(Uri.parse(url));


        if(Calendar.HOUR==10){
            startActivity(intent);
        }

    }
    catch (Exception e){
        e.printStackTrace();
    }

共 (1) 个答案

  1. # 1 楼答案

    所以,你的问题实际上是关于如何在特定时间执行一些代码,而不是whatsapp

    简单的答案是启动计时器,让它每秒启动一次,检查计时器代码中的当前时间。如果时间是22:00:00(晚上10点)或10:00:00(上午10点),请致电您的功能

    你不想只是查看日历。HOUR==10,因为那一小时的每一秒都是如此,所以你可能会发送比你想要的更多的信息

    请记住,这只会发生在应用程序正在运行的情况下,也可能只会发生在应用程序正在前台运行的情况下。如果你需要一天24小时都这样做,那么你可能想要创建某种类型的系统服务并让它发送消息

    //Declare the timer
    Timer t = new Timer();
    //Set the schedule function and rate
    t.scheduleAtFixedRate(new TimerTask() {
    
        @Override
        public void run() {
             //Called each time when 1000 milliseconds (1 second) (the period parameter)
    
             // Get calendar set to the current date and time
             Calendar cal = Calendar.getInstance();
             // ensures we're using the same current time
             Calendar cal2 = cal;
    
            // Set time of calendar to 22:00:00.000
             cal.set(Calendar.HOUR_OF_DAY, 22);
             cal.set(Calendar.MINUTE, 0);
             cal.set(Calendar.SECOND, 0);
             cal.set(Calendar.MILLISECOND, 0);
    
            // Check if current time is after or before 22:00:00.000 today
            if ((cal2.after(cal)) || (cal2.before(cal)) {
               return;
            }
    
            PackageManager packageManager = context.getPackageManager();
            Intent intent = new Intent(Intent.ACTION_VIEW);
    
            try {
                String url = "https://api.whatsapp.com/send?phone="+ toNumber +"&text=" + URLEncoder.encode(whatsAppMessage, "UTF-8");
                intent.putExtra(Intent.EXTRA_TEXT, whatsAppMessage);
                intent.setType("text/plain");
                intent.putExtra(Intent.EXTRA_STREAM, whatsAppImage);
                intent.setType("image/jpeg");
                intent.setPackage("com.whatsapp");
                intent.setData(Uri.parse(url));
    
                startActivity(intent);
    
            }
            catch (Exception e){
                e.printStackTrace();
            }
    
        }
    
    },
    //Set how long before to start calling the TimerTask (in milliseconds)
    0,
    //Set the amount of time between each execution (in milliseconds)
    1000);