相关疑难解决方法(0)

在Android中发送和接收短信和彩信(pre Kit Kat Android 4.4)

我已经弄明白了如何发送和接收短信.要发送短信,我必须调用该类的sendTextMessage()sendMultipartTextMessage()方法SmsManager.要接收SMS消息,我必须在AndroidMainfest.xml文件中注册接收器.然后我不得不重写onReceive()方法BroadcastReceiver.我在下面列举了一些例子.

MainActivity.java

public class MainActivity extends Activity {
    private static String SENT = "SMS_SENT";
    private static String DELIVERED = "SMS_DELIVERED";
    private static int MAX_SMS_MESSAGE_LENGTH = 160;

    // ---sends an SMS message to another device---
    public static void sendSMS(String phoneNumber, String message) {

        PendingIntent piSent = PendingIntent.getBroadcast(mContext, 0, new Intent(SENT), 0);
        PendingIntent piDelivered = PendingIntent.getBroadcast(mContext, 0,new Intent(DELIVERED), 0);
        SmsManager smsManager = SmsManager.getDefault();

        int length = message.length();          
        if(length > MAX_SMS_MESSAGE_LENGTH) …
Run Code Online (Sandbox Code Playgroud)

sms android mms broadcastreceiver android-manifest

131
推荐指数
3
解决办法
11万
查看次数

在环聊2.0中启用短信支持会破坏我应用中的SMS_RECEIVED的BroadcastReceiver

我刚刚收到了Hangouts 2.0的更新,已安装并启用了SMSTurn on SMS.现在我的应用程序在Android 4.3下运行,无法再接收短信,即我的BroadcastReceiver for SMS_RECEIVED不再被调用.:-(

只要我Turn on SMS在环聊2.0中禁用,我的应用就可以再次接收SMS_RECEIVED意图.

广播接收器在此类清单中注册

AndroidManifest.xml中

…
<receiver android:name=".SMSReceiver" >
    <intent-filter>
        <action android:name="android.provider.Telephony.SMS_RECEIVED" />
    </intent-filter>
</receiver>
…
Run Code Online (Sandbox Code Playgroud)

SMSReceiver.java

public class SMSReceiver extends BroadcastReceiver {

    private static final Log LOG = Log.getLog();

    @Override
    public void onReceive(Context context, Intent intent) {
            LOG.d("onReceive");
            …
    }
}
Run Code Online (Sandbox Code Playgroud)

我已经尝试将接收器的优先级更改为INT_MAX或999,这是intent-filter文档中可能最高优先级,但没有成功.我知道SMS_RECEIVED意图是有序发送的,高优先级的应用程序有能力中止广播.1但是,Hangouts 2.0似乎不太可能SMS_RECEIVED以高优先级注册接收器并调用abortBroadcast(),因此阻止任何其他应用程序接收意图.

更令我困惑的是,即使将Hangouts 2.0作为默认短信应用,我的Pebble仍然可以接收短信.我想知道Pebble的不同之处是什么?我刚刚注意到,我的Pebble上的传入短信通知不再是Pebble应用程序收到的新短信通知,而是由收到传入短信的环聊引起的"新环聊消息"通知.所以Pebble应用程序也无法接收传入的短信SMS_RECEIVED.

在旁注而且与此问题没有真正关联,因为我仍然在Android 4.3(但我的应用程序针对SDK级别19,Android 4.4以防万一)Google的Android开发者博客文章关于Kitkat中 …

sms android hangout

25
推荐指数
1
解决办法
7478
查看次数

Android短信接收器不工作

我正在尝试编写一个试图接收SMS消息并处理它们的简单应用程序.我已经按照了几个教程,但是我无处可去,当我向模拟器发送短信时,Intent似乎永远不会被解雇.

这是我的意图:

package com.neocodenetworks.smsfwd;

import android.content.*;
import android.os.Bundle;
import android.telephony.*;
import android.util.Log;

public class SmsReciever extends BroadcastReceiver {
    private static final String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED";
    private static final String TAG = "smsfwd";

    @Override
    public void onReceive(Context context, Intent intent) {
        Log.i(TAG, "Intent recieved: " + intent.getAction());

        if (intent.getAction() == SMS_RECEIVED) {
            Bundle bundle = intent.getExtras();
            if (bundle != null) {
                Object[] pdus = (Object[])bundle.get("pdus");
                final SmsMessage[] messages = new SmsMessage[pdus.length];
                for (int i = 0; i < pdus.length; i++) { …
Run Code Online (Sandbox Code Playgroud)

sms android intentfilter broadcastreceiver

12
推荐指数
2
解决办法
2万
查看次数

如何在Android中创建计时器刻度?

我有这个方法

public void GetSMS(){
       //in this method I read SMS in my app inbox,
       //If have new SMS create notification
}
Run Code Online (Sandbox Code Playgroud)

对于这个我认为创建计时器滴答方法和每5秒调用GetSMS()

如何为此创建正确的方法?

android

6
推荐指数
3
解决办法
2万
查看次数

在android API级别23中不推荐使用SmsMessage.createFromPdu

我正在尝试使用以下代码阅读收到的短信,它在API级别23下工作,但在API级别23 createFromPdu方法已弃用.在谷歌文档中它有一个替代方法,但我如何使用它.

public class IncomingSms extends BroadcastReceiver {

// Get the object of SmsManager
final SmsManager sms = SmsManager.getDefault();

public void onReceive(Context context, Intent intent) {

    // Retrieves a map of extended data from the intent.
    final Bundle bundle = intent.getExtras();

    try {

        if (bundle != null) {

            final Object[] pdusObj = (Object[]) bundle.get("pdus");

            for (int i = 0; i < pdusObj.length; i++) {

                SmsMessage currentMessage = SmsMessage.createFromPdu((byte[]) pdusObj[i]);
                String phoneNumber = currentMessage.getDisplayOriginatingAddress();

                String senderNum = phoneNumber; …
Run Code Online (Sandbox Code Playgroud)

android android-sdk-tools smsmanager android-studio android-6.0-marshmallow

4
推荐指数
3
解决办法
1万
查看次数

从广播短信接收器更新谷歌地图标记

我是android和java的新手.我正在尝试使应用程序执行以下任务.

  • 接收传入的短信(具有纬度和经度信息)
  • 用标记在地图上显示它们所以每次短信来到地图时都应该得到一个新的标记.

目前我有一张地图,我可以展示一个点,我已经实现了一个广播接收器,以获得形式的短信和经度.

但我不确定如何在接收新短信时从广播接收器更新地图.

任何帮助或提示都会很有用.

谢谢

android google-maps-api-3 android-intent android-layout mapactivity

3
推荐指数
1
解决办法
2508
查看次数

Android Sms Broadcast Listener无法正常工作

甚至没有调用Log.d.找不到错误.我看过Android - 短信广播接收器,Android - 收听传入短信.我一直在寻找解决方案,持续24小时左右.请看看并告诉我哪里错了.

没有异常被抛出.SmsListener在我的包文件夹中,放置所有其他活动.

更新添加android:enabled="true"到接收器.然后也没工作.

我有我的清单:

<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.WRITE_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />

<receiver android:name=".SmsListener" android:exported="false">
     <intent-filter android:priority="2147483647">
         <action android:name="android.provider.Telephony.SMS_RECEIVED" />
     </intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)

SmsListener.Java代码:

public class SmsListener extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {

    Log.d(MainActivity.TAG,
            "in Receiver. intent.getAction():" + intent.getAction());

    if (intent.getAction()
            .equals("android.provider.Telephony.SMS_RECEIVED")) {
        Bundle bundle = intent.getExtras(); // ---get the SMS message passed
                                            // in---
        SmsMessage[] msgs = null;
        String msg_from;
        if …
Run Code Online (Sandbox Code Playgroud)

sms android broadcastreceiver

2
推荐指数
1
解决办法
6298
查看次数