我想从我的iPhone发送通知给另一部iPhone

时间:2012-04-18 22:22:54

标签: iphone push-notification

在我开始之前我意识到这个问题在此论坛之前已经提出,因为我找到了这个帖子。但是,问题没有得到解答。

我正在使用iPhone作为工作机器构建系统。我这样说是因为我想强调手机不是苹果的某种产品,而是作为一种能够或不能执行特定任务的设备。

我已经越狱了我正在使用的两部手机,并将专门用它们来解决系统要解决的问题。我的系统将由我和我单独使用,因此Apple如何使用这些设备,用户体验等问题与我无关。

好的,说了这么多,我将简要介绍一下这个系统。两个iPhone,一个在电子项目盒中的内脏钉在我的前门上方,相机面向访客。其他iPhone,完好无损,放在口袋里。我已经把1针和1针连接起来了。 11到门铃按钮并通过监视音频路线变化提醒手机按下它。我的口袋手机上需要一个应用程序,它会被门铃发出的通知唤醒。一旦我在口袋电话上接收通知,门电话也会发送图像。这里根本没有互联网,但我确实有两个手机连接的无线路由器。

这就是系统,我已经搜索了高低,找到了可以帮助我获取门电话生成推送通知并将其发送到我的口袋电话的代码,到目前为止我发现的只有{{3这就是我所需要的只是它为mac而不是iPhone编写而我是Objective C的新手,所以移植真的很难。

请有人帮我完成我想做的事情,我知道Apple并不打算让我像我一样使用它的产品但是很多制造商和爱好者都没有设法使用它们以更具创造性和创新性的方式,无论如何。我目前正在使用PC和网络摄像头来看看谁在门口并且它使用了很多电动,新系统要好得多,只要我可以让它工作所以请,如果你有能力/知识帮助请然后我发表回复,我将永远感激不尽。谢谢你,理查德。

2 个答案:

答案 0 :(得分:0)

我想不出一种直接从一部手机向另一部手机发送信息的简便方法。 (虽然我不习惯越狱,所以谁知道......)。无论如何,这就是我要做的事情:

设置一个简单的Web服务器,以便在两个设备之间进行连接。你说你没有互联网,所以只需在网络上的本地计算机上运行Apache或其他任何东西就可以了。无论何时您想发送消息,发送电话都会向服务器发送内容。不幸的是,如果您不能/不想使用Apple的推送通知服务,我认为接收电话将不得不经常监控服务器以查看是否有任何新消息。 :(

答案 1 :(得分:0)

使用GameKit将手机与蓝牙配对。

这是一个关于如何蓝牙配对两个iPhone的问题:How to use bluetooth to connect two iPhone?

最简单的方法是使用高度不透明的GameKit。这是一个实现此目的的Apple示例应用程序:http://developer.apple.com/library/ios/#samplecode/GKTank/Introduction/Intro.html

从该示例中发送数据包的片段(在TankViewController.m中):

- (void)sendNetworkPacket:(GKSession *)session packetID:(int)packetID withData:(void *)data ofLength:(int)length reliable:(BOOL)howtosend {
    // the packet we'll send is resued
    static unsigned char networkPacket[kMaxTankPacketSize];
    const unsigned int packetHeaderSize = 2 * sizeof(int); // we have two "ints" for our header

    if(length < (kMaxTankPacketSize - packetHeaderSize)) { // our networkPacket buffer size minus the size of the header info
        int *pIntData = (int *)&networkPacket[0];
        // header info
        pIntData[0] = gamePacketNumber++;
        pIntData[1] = packetID;
        // copy data in after the header
        memcpy( &networkPacket[packetHeaderSize], data, length ); 

        NSData *packet = [NSData dataWithBytes: networkPacket length: (length+8)];
        if(howtosend == YES) { 
            [session sendData:packet toPeers:[NSArray arrayWithObject:gamePeerId] withDataMode:GKSendDataReliable error:nil];
        } else {
            [session sendData:packet toPeers:[NSArray arrayWithObject:gamePeerId] withDataMode:GKSendDataUnreliable error:nil];
        }
    }
}