ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

在Android上是否可以按下开始按钮发送短信,电子邮件和拨打电话?

2019-07-16 11:23:52  阅读:212  来源: 互联网

标签:android android-intent android-hardware


在按下电话开始按钮的Android中执行以下操作在技术上是否可行.让我们说用户的手机已关闭.当用户按下开启按钮时,会发生以下情况:

>发送短信
>发送电子邮件
>拨打电话

目前,我试图找到手机的START BUTTON的KeyCode但无法在log cat中获得任何响应.

import android.view.KeyEvent;

        @Override
    public boolean onKeyDown(int keyCode, KeyEvent event)
    {


            Log.e("KeyCode", "KeyCode:" + keyCode);
            Log.e("KeyEvent", "KeyEvent" + event);

            return true;

    }

期待以精确的技术细节提供可靠的答案.谢谢

解决方法:

在AndroidManifest.xml中注册广播接收器.当屏幕打开时,此接收器广播.这将执行您的应用程序活动是否在屏幕上.

AndroidManifest.xml中

<receiver android:name=".MyBroadCastReciever">
    <intent-filter>
        <action android:name="android.intent.action.SCREEN_ON"/>
    </intent-filter>
</receiver>

MyBroadCastReciever.java

public class MyBroadCastReciever extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) {
            Log.i("Check","Screen went ON");
            Toast.makeText(context, "screen ON",Toast.LENGTH_LONG).show();

            // Here you can write the logic of send SMS, Email, Make a call

        }
    }
}

更新

Logic to make the call

你可以这么做.它直接打电话.

Intent callIntent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + "Your Phone_number")); 
startActivity(callIntent);

并在AndroidManifest.xml中添加此权限

<uses-permission android:name="android.permission.CALL_PHONE" />

Logic to send the SMS

你可以这么做.这发送短信

public void sendSMS() {
    String phoneNumber = "0123456789";
    String message = "Hello World!";

    SmsManager smsManager = SmsManager.getDefault();
    smsManager.sendTextMessage(phoneNumber, null, message, null, null);
}

并在AndroidManifest.xml中添加此权限

<uses-permission android:name="android.permission.SEND_SMS" />

Logic to send the Email

如果您想在此处发送电子邮件而无需在id上进行任何用户交互,则可以设计PHP Web服务并在Android应用程序中调用Web服务.

如果要从配置的电子邮件发送邮件,则可以使用Intent.

Intent email = new Intent(Intent.ACTION_SEND);
email.putExtra(Intent.EXTRA_EMAIL, new String[]{"youremail@yahoo.com"});          
email.putExtra(Intent.EXTRA_SUBJECT, "subject");
email.putExtra(Intent.EXTRA_TEXT, "message");
email.setType("message/rfc822");
startActivity(Intent.createChooser(email, "Choose an Email client :"));

注意:如果要在Activity中执行此操作,请在活动中注册广播接收器,并在活动销毁时取消注册.

标签:android,android-intent,android-hardware
来源: https://codeday.me/bug/20190716/1477848.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有