GVKun编程网logo

mipush的receiver无法获得消息,断点也失效,原因很奇葩strings.xml缺少内容

25

如果您对mipush的receiver无法获得消息,断点也失效,原因很奇葩strings.xml缺少内容感兴趣,那么这篇文章一定是您不可错过的。我们将详细讲解mipush的receiver无法获得消息

如果您对mipush的receiver无法获得消息,断点也失效,原因很奇葩strings.xml缺少内容感兴趣,那么这篇文章一定是您不可错过的。我们将详细讲解mipush的receiver无法获得消息,断点也失效,原因很奇葩strings.xml缺少内容的各种细节,此外还有关于)Lorg/apache/spark/streaming/api/java/JavaPairReceiverInputDStream;、Android 7 BroadcastReceiver onReceive intent.getExtras缺少数据、Android BroadcastReceiver无法接收任何广播事件、android – BroadcastReceiver SMS_Received无法在新设备上运行的实用技巧。

本文目录一览:

mipush的receiver无法获得消息,断点也失效,原因很奇葩strings.xml缺少内容

mipush的receiver无法获得消息,断点也失效,原因很奇葩strings.xml缺少内容

 

mipush的receiver无法获得消息,断点也失效,原因很奇葩strings.xml缺少内容

貌似mipush的sdk需要这里面的条目

 

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">捷商汇</string>
    <string name="action_settings">Settings</string>
    <string name="hello_world">Hello world!</string>
    <string name="log">日志</string>
    <string name="settings">设置</string>
    <string name="set_alias">设置别名</string>
    <string name="unset_alias">撤销别名</string>
    <string name="set_account">设置帐号</string>
    <string name="unset_account">撤销帐号</string>
    <string name="subscribe_topic">订阅标签</string>
    <string name="unsubscribe_topic">撤销标签</string>
    <string name="set_env">设置环境</string>
    <string name="set_accept_time">设置时间</string>
    <string name="pause_push">暂停推送</string>
    <string name="resume_push">恢复推送</string>
    <string name="current_env">当前环境:%s</string>
    <string name="official_env">线上环境</string>
    <string name="sandbox_env">沙箱环境</string>
    <string name="register_success">Register push success.</string>
    <string name="register_fail">Register push fail.</string>
    <string name="recv_passthrough_message"> Receive a passthrough message. Content is \"%1$s\"</string>
    <string name="click_notification_message"> Clicked a notification message. Content is \"%1$s\"</string>
    <string name="arrive_notification_message"> Arrived a notification message. Content is \"%1$s\"</string>
    <string name="set_alias_success"> Set alias \"%1$s\" success.</string>
    <string name="set_alias_fail"> Set alias fail for %1$s.</string>
    <string name="unset_alias_success"> Unset alias \"%1$s\" success.</string>
    <string name="unset_alias_fail"> Unset alias fail for %1$s.</string>
    <string name="set_account_success"> Set account \"%1$s\" success.</string>
    <string name="set_account_fail"> Set account fail for %1$s.</string>
    <string name="unset_account_success"> Unset account \"%1$s\" success.</string>
    <string name="unset_account_fail"> Unset account fail for %1$s.</string>
    <string name="subscribe_topic_success"> Subscribe topic \"%1$s\" success.</string>
    <string name="subscribe_topic_fail"> Subscribe topic fail for %1$s.</string>
    <string name="unsubscribe_topic_success"> Unsubscribe topic \"%1$s\" success.</string>
    <string name="unsubscribe_topic_fail"> Unsubscribe topic fail for %1$s.</string>
    <string name="set_accept_time_success"> Set accept time %1$s - %2$s success.</string>
    <string name="set_accept_time_fail"> Set accept time fail for %1$s.</string>

</resources>

)Lorg/apache/spark/streaming/api/java/JavaPairReceiverInputDStream;

)Lorg/apache/spark/streaming/api/java/JavaPairReceiverInputDStream;

 java.lang.NoSuchMethodError: org.apache.spark.streaming.kafka.KafkaUtils.createStream(Lorg/apache/spark/streaming/api/java/JavaStreamingContext;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)Lorg/apache/spark/streaming/api/java/JavaPairReceiverInputDStream;
    at org.apache.spark.examp.JavaKafkaWordCount.main(JavaKafkaWordCount.java:84)
 

Android 7 BroadcastReceiver onReceive intent.getExtras缺少数据

Android 7 BroadcastReceiver onReceive intent.getExtras缺少数据

我的应用程序无法在 Android 7上运行.我调用了broadcastReceiver.onReceive方法,但缺少intent.getExtras的内容.我已经验证数据已正确加载.这是我的onReceive方法的一个片段,其中intent作为参数传递给onReceive.

Bundle bundle = intent.getExtras();
textMessage = bundle.getString("TEXT_MESSAGE");
ArrayList<MyPhoneNumber> phoneNumbersToText = bundle.getParcelableArrayList("PHONE_NUMBERS");

textMessage和phoneNumbersToText都为null.

这是我的清单文件中的一个片段:

<receiver android:process=":remote" android:name="com.friscosoftware.timelytextbase.AlarmReceiver"></receiver>

这是加载数据的片段:

Intent intent = new Intent(context,AlarmReceiver.class);  
intent.putExtra(Constants.TEXT_MESSAGE,scheduledItem.getMessagetoSend());
intent.putExtra(Constants.PHONE_NUMBERS,scheduledItem.getPhoneNumbersToText());    

PendingIntent sender = PendingIntent.getbroadcast(context,getRequestCodeFromKey(key),intent,PendingIntent.FLAG_UPDATE_CURRENT);

// Get the AlarmManager service
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP,selectedDateTime.getTimeInMillis(),sender);

相同的代码在Android 6中运行良好.

有关Android 7需要进行哪些更改的任何想法?

谢谢

解决方法

1,看起来你和我有同样的问题.我将它记录在你评论过的跟踪器( https://code.google.com/p/android/issues/detail?id=216581)上.

我的解决方案是使用SharedPreferences来存储我的自定义对象.然后,当alarmmanager触发时,我运行以下命令将对象取出.
tl; dr,我使用GSON将我的自定义POJO作为字符串序列化/反序列化到SharedPrefs中.例如:

String json = getSharedPrefs(context).getString(NotificationUtility.NEXT_REMINDER_KEY,"No reminder found");
    try {
        Gson gson = new Gson();
        Reminder reminder = gson.fromJson(json,Reminder.class);
        if (reminder != null) {
            return reminder;
        }
    } catch (Exception error) {
        Log.i(TAG,"Error parsing json: " + error.getMessage(),error);
        return null;
    }
    return null;

希望这可以帮助你!

Android BroadcastReceiver无法接收任何广播事件

Android BroadcastReceiver无法接收任何广播事件

我创建了一个broadcastReceiver来检测SDCard的mount和unmount
事件,但是,我根本无法收到任何事件:
这里是 AndroidManifest.xml:
<receiver android:enabled="true" android:label="SDCardMountReceiver" android:exported="true" android:name="xxx.broadcasts.SDCardbroadcastReceiver">
    <intent-filter>
        <action android:name="android.content.Intent.ACTION_MEDIA_MOUNTED"></action>
        <!-- or <action android:name="android.content.Intent.ACTION_MEDIA_UNMOUNTED" />--></intent-filter>
</receiver>

和SDCardMountReceiver类:

public class SDCardbroadcastReceiver extends broadcastReceiver {
    public SDCardbroadcastReceiver() {
        super();
        System.err.println("constructor");
    }

    public void onReceive(Context context,Intent intent) {
        Log.d("SDCardbroadCastReceiver","receive " + intent.getAction());
        System.err.println("jonathan receive " + intent.getAction());

    }
}

解决方法

Intent javadoc指定了一个不同的动作:name值. 使用“android.intent.action.MEDIA_MOUNTED”而不是“android.content.Intent.ACTION_MEDIA_MOUNTED”

android – BroadcastReceiver SMS_Received无法在新设备上运行

android – BroadcastReceiver SMS_Received无法在新设备上运行

在经历了几个资源和问题后,我仍然面临检测传入SMS消息的问题.

下面的代码显示了基础知识:

显示Toast onReceive的广播接收器类

public class IncomingSms extends broadcastReceiver {
    public void onReceive(Context context, Intent intent) {
        Toast.makeText(context, "something received", Toast.LENGTH_SHORT).show();
    }
}

简单清单,注册接收者和权限

<application
    <receiver 
        android:name=".IncomingSms"
        android:permission="android.permission.broADCAST_SMS"
        android:exported="true">

        <intent-filter android:priority="2147483647" >
            <action android:name="android.provider.Telephony.SMS_RECEIVED" />
        </intent-filter>
    </receiver>

</application>

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

上面的代码声明并注册接收器,并具有适当的权限.此外,优先级设置为MAX_INT或2147483647.

我的设备是Nexus 6P,安装了默认的Messenger应用程序(我也尝试过环聊).该应用程序仍然不显示我的祝酒词.尝试使用较旧的三星设备后,正确打印了祝酒词.

优先问题

我在6P上安装了一个名为Manifest Viewer的应用程序,它允许我查看设备上安装的应用程序的manifest.xml.我检查了Messenger和Hangouts的清单,为SMS标签的接收者,并发现他们两个也指定优先级2147483647.似乎这两个信使应用程序最大优先级,并且一旦他们消费该消息,他们不允许其他应用程序进行干预.请注意,这些是Google应用程序的库存,而不是第三方.

在这一点上,我很困惑:

>他们为什么要这样做?
>如何绕过它?

非常感谢

解决方法:

好的,问题解决了.
问题不在于优先事项,而是我的手机是Nexus 6P(a.k.a.API 23).

仅在manifest.xml中提供权限是不够的,我不得不为运行时权限请求添加代码.见Android documentation for runtime permissions

将此代码添加到您的MainActiviy:

ActivityCompat.requestPermissions(this, 
            new String[]{Manifest.permission.RECEIVE_SMS},
            MY_PERMISSIONS_REQUEST_SMS_RECEIVE);

在MainActivity类的顶部定义它:

private int MY_PERMISSIONS_REQUEST_SMS_RECEIVE = 10;

并添加此覆盖:

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    super.onRequestPermissionsResult(requestCode, permissions, grantResults);
    if (requestCode == MY_PERMISSIONS_REQUEST_SMS_RECEIVE) {
        // YES!!
        Log.i("TAG", "MY_PERMISSIONS_REQUEST_SMS_RECEIVE --> YES");
    }
}

关于mipush的receiver无法获得消息,断点也失效,原因很奇葩strings.xml缺少内容的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于)Lorg/apache/spark/streaming/api/java/JavaPairReceiverInputDStream;、Android 7 BroadcastReceiver onReceive intent.getExtras缺少数据、Android BroadcastReceiver无法接收任何广播事件、android – BroadcastReceiver SMS_Received无法在新设备上运行等相关知识的信息别忘了在本站进行查找喔。

本文标签: