如何在收到短信时制作应用 运行
How to make a app run whenever you receive an sms
我正在制作一个应在 Phone 收到包含特定内容(如密码)的短信时启动的应用程序。我已经尝试了很多代码,但它仍然不起作用。谁能帮帮我?
这是我的代码:
SmsReceiver.java
package com.example.william.better_gps;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;
public class SmsReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "message", Toast.LENGTH_LONG).show();
}
}
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.william.better_gps" >
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name=".SmsReceiver"
android:enabled="true">
<intent-filter android:priority="999">
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
</intent-filter>
</receiver>
</application>
</manifest>
哦,有没有什么方法可以模拟短信,这样我就不必让别人发短信给我,如果我想检查它是否正常工作
您正在将应用程序设置为 运行 作为启动器应用程序,只有当您单击图标 运行 时才会发生这种情况。您需要指定用于在收到短信时启动应用程序的意图过滤器。然后在代码中你可以在 Main activity 中设置一个广播接收器来监听后续的文本。
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar" >
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
不要在 API 级别 23 操作中使用 compileSdkVersion、targetSdkVersion、buildToolsVersion 23 或大于 that.Because SMS_RECEIVED 在广播接收器中给予权限被拒绝
使用 21 或低于 that.below 配置适合我
compileSdkVersion 21
buildToolsVersion "21.1.2"
targetSdkVersion 21
我正在制作一个应在 Phone 收到包含特定内容(如密码)的短信时启动的应用程序。我已经尝试了很多代码,但它仍然不起作用。谁能帮帮我?
这是我的代码: SmsReceiver.java
package com.example.william.better_gps;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;
public class SmsReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "message", Toast.LENGTH_LONG).show();
}
}
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.william.better_gps" >
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name=".SmsReceiver"
android:enabled="true">
<intent-filter android:priority="999">
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
</intent-filter>
</receiver>
</application>
</manifest>
哦,有没有什么方法可以模拟短信,这样我就不必让别人发短信给我,如果我想检查它是否正常工作
您正在将应用程序设置为 运行 作为启动器应用程序,只有当您单击图标 运行 时才会发生这种情况。您需要指定用于在收到短信时启动应用程序的意图过滤器。然后在代码中你可以在 Main activity 中设置一个广播接收器来监听后续的文本。
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar" >
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
不要在 API 级别 23 操作中使用 compileSdkVersion、targetSdkVersion、buildToolsVersion 23 或大于 that.Because SMS_RECEIVED 在广播接收器中给予权限被拒绝
使用 21 或低于 that.below 配置适合我
compileSdkVersion 21
buildToolsVersion "21.1.2"
targetSdkVersion 21