我试图通过Angular服务将遗留的javascript函数中的消息广播到Angular控制器中.在Angular中调用时,广播工作正常,但不在外部.见http://jsfiddle.net/yh3Ds/24/
我想以编程方式让我的设备在连接到 WiFi 网络时响应广播 ping(即 ping 192.178.1.255)。
我有办法做到这一点吗?也许是一个会回复的侦听器,或者是在某个地方设置的标志?
谢谢。
如何计算目标C中的广播地址
我想将广播地址解析为与以下子网计算器中显示的结果相同 - http://www.subnet-calculator.com/subnet.php
我有本地IOS设备的IP地址和子网掩码.我知道广播地址使用以下公式
broadcast = ip | ( ~ subnet )
Run Code Online (Sandbox Code Playgroud)
(我正在回答我自己,因为我没有在互联网上看到过这个,而且我也不知道有任何库执行这个计算.很高兴看到是否有其他人有更好的解决方案或知道任何库)
我在广播清单中有一个意图过滤器声明。
<intent-filter>
<action android:name="android.intent.action.TIME_SET"/>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
<action android:name="android.intent.action.MY_PACKAGE_REPLACED"/>
<data android:scheme="content"/>
</intent-filter>
Run Code Online (Sandbox Code Playgroud)
问题是,当我删除<data android:scheme="content"/>了MY_PACKAGE_REPLACED行动收到否则就没有。
在这种情况下数据标签是什么?从文档中无法真正理解。
这是问题所在.我的程序在Android 6.0中运行完美.将设备更新到android 7.0后.Pendingintent无法将可分配的数据传递给boradcast reveiver.这是代码.
发出警报
public static void setAlarm(@NonNull Context context, @NonNull Todo todo) {
AlarmManager alarmManager = (AlarmManager) context.getSystemService(context.ALARM_SERVICE);
Intent intent = new Intent(context, AlarmReceiver.class);
intent.putExtra("KEY_TODO", todo);
PendingIntent alarmIntent = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
alarmManager.set(AlarmManager.RTC_WAKEUP, todo.remindDate.getTime(), alarmIntent);
}
Run Code Online (Sandbox Code Playgroud)
Todo是一个Parcelable类,而todo是我在通知中需要的实例.
在Broadcastreceiver中,我无法获取可用的数据.
public void onReceive(Context context, Intent intent) {
Todo todo = intent.getParcelableExtra("KEY_TODO");
}
Run Code Online (Sandbox Code Playgroud)
我不知道为什么意图只包含一个我从未放入的Integer.Carcelable todo在哪里.此代码在Android 6.0中没有问题,但无法在7.0中运行
android broadcast parcelable android-intent android-pendingintent
我正在开发一个应用程序,当设备连接到互联网时,它将在后台按顺序将我的所有数据库记录上传到服务器。
为此,我编写了一个BroadcastReceiver监听网络连接的程序。当这个接收器被触发时,我正在启动后台服务来上传记录。
这是我的代码。
public class NetworkChangeReceiver extends BroadcastReceiver {
@Override
public void onReceive(final Context context, final Intent intent) {
AppUtils.checkInternetConnection(context));
//If the device has the internet connection and if there are any pending records to upload to server then start the service for uploading the records.
if (AppUtils.checkInternetConnection(context)) {
if (Database.getInstance().getTotalRecordsCount() > 0) {
context.startService(new Intent(context, SurveyUploadService.class));
}
} else {
context.stopService(new Intent(context, SurveyUploadService.class));
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在我的疑问是
1. 我可以使用JobScheduler做同样的事情吗?
2. 什么是更好的(我的或使用 JobScheduler 的)方法,为什么?
service android broadcast broadcastreceiver android-jobscheduler
我很高兴为BroadcastCopyBlockTPL 数据流中的以下实现提供一些输入,该实现将收到的消息复制到所有消费者,该消息已注册BroadcastCopyBlock并保证交付给所有消费者,这些消费者在收到消息时链接到块. (与BroadcastBlock不保证消息传递的不同,如果下一个进来,则在前一个消息已传递给所有消费者之前)。
我主要关心的是消息的保留和保留的释放。如果接收块决定不处理消息,会发生什么?我的理解是,这会造成内存泄漏,因为消息将被无限期保留。我在想,我应该以某种方式将消息标记为未使用,但我不确定如何。我正在考虑一些人工消息接收器(ActionBlock没有任何操作),或者我可以将消息标记为已丢弃?
对实施的进一步投入也受到赞赏。
这可能几乎是以下问题的重复,但我更愿意使用我自己的类,而不是创建块的方法。或者这会被认为是不好的风格吗?
在 TPL 数据流中具有保证交付的 BroadcastBlock
/// <summary>
/// Broadcasts the same message to multiple consumers. This does NOT clone the message, all consumers receive an identical message
/// </summary>
/// <typeparam name="T"></typeparam>
public class BrodcastCopyBlock<T> : IPropagatorBlock<T, T>
{
private ITargetBlock<T> In { get; }
/// <summary>
/// Holds a TransformBlock for each target, that subscribed to this block
/// </summary>
private readonly IDictionary<ITargetBlock<T>, TransformBlock<T, T>> _OutBlocks …Run Code Online (Sandbox Code Playgroud) 我在我的应用程序中使用广播接收器。我的应用程序中有很多活动。在 MainActivity.java 中使用的 Broadcard 接收器如下:
private BroadcastReceiver smsReceiver = new BroadcastReceiver() {
@Override
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) {
}
} catch (Exception e) {
e.printStackTrace();
}
}
};
Run Code Online (Sandbox Code Playgroud)
当消息到来并且 MyActivity 处于焦点时,我会发出通知。现在,当我关注其他活动时,我没有收到通知。有没有一种通用的方法可以将 BroadCast 用作全局方式???对于所有活动???
因此,正如我的标题所说,我想将 Laravel 的默认Broadcast身份验证中间件更改为我制作的使用基于令牌的身份验证的自定义身份验证中间件。我这样做是因为我的应用程序是一个基于 API 的应用程序,当用户进行身份验证时,我创建一个会话令牌并将其发送给他,并将其存储在带有expires_at列的数据库中。我正在使用Pusher.
我有以下中间件:
class AuthCustom
{
public function handle($request, Closure $next)
{
// if we have the session token stored in header
if ($request->header('x-session')) {
$session = Session::where('id', $request->header('x-session'))->where('expires_on', '>=', date('Y-m-d G:i:s'))->with('user')->first();
if ($session !== null) {
$user = (new User())->where('id', $session->user_id)->first();
if ($user !== null) {
$request->merge(['user' => $user]);
return $next($request);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我的BroadcastServiceProvider代码如下:
class BroadcastServiceProvider extends ServiceProvider
{
public function boot()
{
Broadcast::routes();
require base_path('routes/channels.php'); …Run Code Online (Sandbox Code Playgroud) broadcast ×10
android ×5
angularjs ×1
c# ×1
cisco ×1
factory ×1
icmp ×1
intentfilter ×1
ios ×1
javascript ×1
laravel ×1
laravel-5.6 ×1
legacy ×1
networking ×1
ntp ×1
objective-c ×1
parcelable ×1
php ×1
ping ×1
pusher ×1
service ×1
subnet ×1
tpl-dataflow ×1