小编Era*_*ran的帖子

使用php发送Windows Phone 7的推送通知

我是一名Web开发人员(PHP).我想使用PHP搜索到Windows Phone 7的推送通知,但结果总是.NET.

请有人可以帮助我.

更新:如何一次发送多个设备?因为延迟时间大约是1秒,所以如果我要推送1000个设备,我可能需要1000秒才能等待.

php push-notification windows-phone-7 mpns

11
推荐指数
1
解决办法
6486
查看次数

com.google.android.c2dm.intent.RECEIVE是否仍在使用?

我已经看到c2dm本身已被弃用.但是新方法Google Cloud Messaging似乎发送了以com.google.android.c2dm.intent.RECEIVE作为操作的意图.

我的代码使用它来获取注册密钥:

gcm = GoogleCloudMessaging.getInstance(getApplicationContext());
gcm.register(SENDER_ID);
Run Code Online (Sandbox Code Playgroud)

事情正确到达,但我想知道我是否已经离开了处于半弃状态的东西.

android push-notification android-intent google-cloud-messaging

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

Spring CrudRepository .orElseThrow()

如果数据库查询返回空,抛出异常的正确方法是什么?我正在尝试使用该.orElseThrow()方法,但它不会编译:

Meeting meeting = meetingRepository.findByMeetingId(meetingId).orElseThrow(new MeetingDoesNotExistException(meetingId));
Run Code Online (Sandbox Code Playgroud)

编译器说:

"他的方法orElseThrow(Supplier)中的Optional类型不适用于参数(MeetingRestController.MeetingDoesNotExistException)

是否可以使用lambda表达式执行此操作?

CrudRepository:

import java.util.Optional;

import org.springframework.data.repository.CrudRepository;

public interface MeetingRepository extends CrudRepository<Meeting, Long>{
    Optional<Meeting> findByMeetingId(Long id);
}
Run Code Online (Sandbox Code Playgroud)

例外:

@ResponseStatus(HttpStatus.CONFLICT) // 409
class MeetingDoesNotExistException extends RuntimeException{
  public MeetingDoesNotExistException(long meetingId){
    super("Meeting " + meetingId + " does not exist.");
  }
}
Run Code Online (Sandbox Code Playgroud)

java spring crud java-8 spring-boot

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

Perl 5中字符串和数字之间的差异何时重要?

如果Perl 5中的字符串通过looks_like_number,它也可能是一个数字.例如,

my $s = "10" + 5;
Run Code Online (Sandbox Code Playgroud)

结果$s被分配15.

是否有任何情况下字符串的行为与其数字等价物不同?

string perl numbers

10
推荐指数
3
解决办法
428
查看次数

两个不同的设备可以具有相同的GCM注册ID吗?

我一直在为我的Android应用程序研究GCM.我注意到,几乎每次我的设备都有不同的GCM注册ID.我UNIQUE_KEY对GCM注册ID 的约束是否安全?并删除所有带错误NotRegistered的ID并更新所有ID canonical_ids

mysql android push-notification google-cloud-messaging

10
推荐指数
1
解决办法
5183
查看次数

如何将唯一的GCM注册ID存储到MySQL中

我正在设置Google Cloud Messaging机制的服务器端,使用MySQL存储移动应用程序提供的注册ID.由于Google可以发出最多4k的注册ID,因此我不得不将它们存储在TEXT字段中.到目前为止一切都很好,问题是我必须处理这样的情况:

  1. 用户登录应用程序
  2. 该应用从谷歌请求注册ID
  3. 该应用程序将新的注册ID发送到应用服务器
  4. 服务器存储该注册ID并将其链接到当前登录的用户
  5. 该用户注销并且新用户登录
  6. 应用程序向服务器发送与以前相同的注册ID
  7. 服务器必须能够看到注册ID已经在数据库中但链接到另一个用户
  8. 服务器取消注册ID与先前用户的链接,并将其链接到新登录的用户

所以问题是我必须确保数据库中注册ID的唯一性,但是我不能为该TEXT字段添加UNIQUE索引.

我能想到的可能的解决方案:

  • 计算注册ID的哈希值并强制该哈希值是唯一的,但可能存在冲突.
  • 我可以存储唯一的设备ID以及注册ID,并强制该设备ID是唯一的.我看到的问题是我不知道Android设备ID可以持续多久,而且我认为在某些情况下它不可用.
  • 每次收到新的注册ID时,我都可以执行搜索,但我认为这最终会导致性能很差的操作.

我确信我不是唯一面临这个问题的人,但我找不到好的解决方案.关于如何解决这个问题的任何想法?

mysql android push-notification google-cloud-messaging

10
推荐指数
1
解决办法
7181
查看次数

无法在Android Studio中解析符号'GCMBroadcastReceiver'

我正在尝试在我的Android应用中使用GoogleCloudMessaging(GCM)API进行推送通知.

参考http://www.androidhive.info/2012/10/android-push-notifications-using-google-cloud-messaging-gcm-php-and-mysql/http://developer.android.com/google /play-services/setup.html#Setup,我试图在AndroidManifest.xml中设置它们,但它给了我一些错误:

  • 无法解析符号'GCMBroadcastReceiver'
  • 无法解析符号'GCMIntentService'

该块位于Application标签中

    <receiver
        android:name="com.google.android.gcm.GCMBroadcastReceiver"
        android:permission="com.google.android.c2dm.permission.SEND" >
        <intent-filter>

            <!-- Receives the actual messages. -->
            <action android:name="com.google.android.c2dm.intent.RECEIVE" />
            <!-- Receives the registration id. -->
            <action android:name="com.google.android.c2dm.intent.REGISTRATION" />

            <category android:name="com.zaqqle.disqover" />
        </intent-filter>
    </receiver>

    <service android:name=".GCMIntentService" />
Run Code Online (Sandbox Code Playgroud)

我正在使用Android Studio和我所做的

  • 在SDK Manager中安装了Google Play服务并与Gradle同步
  • 包含compile 'com.google.android.gms:play-services:4.3.23'在build.gradle中
  • 包含<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />在AndroidManifest.xml中

你能帮我指出我错过的地方吗?感谢您的帮助!

android push-notification google-cloud-messaging

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

什么是GCM注册ID?

您好我想将gcm添加到我的应用程序中.我的申请是一个新闻申请.用户可在注册后查看新闻.应用程序询问用户兴趣(经济,体育,汽车等)并保存它们.我想通过php和mysql发送消息给用户.我必须决定向哪些用户发送哪些新闻.所以我需要注册ID.

是android设备号吗?或Android设备谷歌帐户和Android设备号码的组合?
或Android设备谷歌帐户和Android设备号和我的应用程序用户ID的组合?

Android设备ID = a => GCM RegID =
Android设备ID = a,Google帐户ID = b => GCM RegID = ab
Android设备ID = a,Google帐户ID = b,应用x用户ID = c => GCM RegID = ABC

如果x用户从应用程序注销并且用户登录同一设备,GCM RegId会更改吗?如果它没有改变并且我将经济新闻推送给用户(对经济不感兴趣),设备将向错误的用户显示错误的通知.那么什么是GCM注册ID?

android push-notification google-cloud-messaging

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

关于收集(供应商,累加器,合并器)

我不明白以下方法的第三个参数的效用:

<R> R collect(Supplier<R> supplier,
              BiConsumer<R,? super T> accumulator,
              BiConsumer<R,R> combiner)
Run Code Online (Sandbox Code Playgroud)

来自javaDoc:

这产生的结果相当于:

 R result = supplier.get();
 for (T element : this stream)
     accumulator.accept(result, element);
 return result;
Run Code Online (Sandbox Code Playgroud)

如您所见,combiner未使用该参数.例如,以下内容将字符串累积到ArrayList中:

 List<String> asList = stringStream.collect(ArrayList::new, ArrayList::add,
                                            ArrayList::addAll);
Run Code Online (Sandbox Code Playgroud)

但我期待这个:

List<String> asList = stringStream.collect(ArrayList::new, ArrayList::add );
Run Code Online (Sandbox Code Playgroud)

java java-8 java-stream

10
推荐指数
1
解决办法
4435
查看次数

Java 8 - 如何使用带参数函数的谓词?

我有以下代码:

public boolean isImageSrcExists(String imageSrc) {
    int resultsNum = 0;
    List<WebElement> blogImagesList = driver.findElements(blogImageLocator);

    for (WebElement thisImage : blogImagesList) {
        if (thisImage.getAttribute("style").contains(imageSrc)) {
            resultsNum++;
        }
    }

    if (resultsNum == 2) {
        return true;
    } else {
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

将它转换为使用Java 8 Stream的正确方法是什么?

当我试图使用时map(),我得到一个错误,因为getAttribute不是Function.

int a = (int) blogImagesList.stream()
                            .map(WebElement::getAttribute("style"))
                            .filter(s -> s.contains(imageSrc))
                            .count();
Run Code Online (Sandbox Code Playgroud)

java lambda predicate java-8 java-stream

10
推荐指数
2
解决办法
7760
查看次数