Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我想从我的iPhone向另一部iPhone发送通知_Iphone_Push Notification - Fatal编程技术网

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

我想从我的iPhone向另一部iPhone发送通知,iphone,push-notification,Iphone,Push Notification,在我开始之前,我意识到这个问题已经在这个论坛上提出过,因为我发现了这个线索。然而,这个问题没有得到回答 我正在构建一个使用iPhone作为工作机器的系统。我这样说是因为我想强调的是,手机不是苹果的产品,而是一种能够或不能执行给定任务的设备 我已经越狱了我正在使用的两部手机,并将专门使用它们来解决系统要解决的问题。我的系统将由我和我单独使用,因此苹果打算如何使用这些设备、用户体验等问题与我无关 好的,在说了所有这些之后,我将简要地概述这个系统。两部iphone,其中一部装在我前门上方的一个电子项目

在我开始之前,我意识到这个问题已经在这个论坛上提出过,因为我发现了这个线索。然而,这个问题没有得到回答

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

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

好的,在说了所有这些之后,我将简要地概述这个系统。两部iphone,其中一部装在我前门上方的一个电子项目箱里,摄像头对着来访者。另一部iPhone,完好无损,在我的口袋里。我把插脚1和11挂在门铃按钮上,通过监控音频线路的变化来提醒手机它被按下。我需要一个应用程序在我的袖珍电话,将被唤醒的通知发送的门电话。一旦我接受了袖珍电话上的通知,门电话也会发送图像。这里根本没有互联网,但我有一个无线路由器,两部手机都与之相连

这就是系统,我到处寻找代码,可以帮助我让门机生成推送通知并将其发送到我的袖珍电话,到目前为止,我所发现的只是这是我需要的,它是为mac而不是iPhone编写的,我对Objective C还不熟悉,所以移植非常困难


我知道苹果公司不打算让我像我一样使用它的产品,但很多制造商也不想,但业余爱好者仍然设法以更具创造性和创新性的方式使用它们。我目前正在使用一台PC和一个网络摄像头来查看谁在门口,它使用了大量的电力,如果我能让它工作,新系统会更好。所以请,请如果你有能力/知识帮助我,然后发布回复,我将永远感激。谢谢你,理查德

我想不出一种简单的方法可以直接从一部手机向另一部手机发送信息。(虽然我不习惯越狱,但谁知道…)。无论如何,我会这样做:


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

使用GameKit将手机与蓝牙配对

这里有一个关于如何将两部iPhone进行蓝牙配对的问题:

最简单的方法是使用高度不透明的GameKit。以下是实现这一点的苹果示例应用程序:

根据该示例,发送数据包的代码段(在TankViewController.m中):

-(void)sendNetworkPacket:(GKSession*)session packetID:(int)packetID with data:(void*)长度数据:(int)长度可靠:(BOOL)如何发送{
//我们将发送的数据包已恢复
静态无符号字符网络包[kMaxTankPacketSize];
const unsigned int packetHeaderSize=2*sizeof(int);//我们的头有两个“int”
如果(长度<(kMaxTankPacketSize-packetHeaderSize)){//我们的网络数据包缓冲区大小减去报头信息的大小
int*pIntData=(int*)和网络数据包[0];
//标题信息
pIntData[0]=游戏包编号++;
pIntData[1]=packetID;
//将数据复制到标题后面
memcpy(&networkPacket[packetHeaderSize],数据,长度);
NSData*数据包=[NSData dataWithBytes:网络数据包长度:(长度+8)];
如果(howtosend==YES){
[session sendData:packet toPeers:[NSArray arrayWithObject:gamePeerId]with DataMode:GKSendDataReliable错误:nil];
}否则{
[session sendData:packet ToPiers:[NSArray arrayWithObject:gamePeerId]with DataMode:GKSendDataUnreliable error:nil];
}
}
}

Hi Numegil,感谢您的回复。不幸的是,这需要一台pc一直处于开机状态,我正在尽可能避免使用持续开机的设备。我已经在这里阅读了发送推送通知的过程,在我看来,只要我能在门上注册我的pocket phones设备令牌那么我应该能够使用门式电话生成推送通知,如果我在这里偏离了轨道,请纠正我。我很难理解为什么pc可以发送推送通知,那么为什么iphone不能(好的,我承认从一部手机向另一部手机发送推送通知似乎是不可能的,因此我必须一直在网络上安装一台pc。虽然我在这里仍然没有internet连接,但我的下一个问题是,如果不使用Apple APSN服务器,我将如何从pc向手机发送推送通知,即,我希望pc生成通知并将其直接发送到我的手机。我用c#编写工作代码,因此如果我能用c#编写自己的APN就太好了,这可能吗?我还没有深入研究过这个问题,所以可能会或可能不会最终为你工作,但可能会通过蓝牙连接:请看,好的,谢谢你的建议。我有ac接受它作为答案,但蓝牙通常在我的手机上关闭。然而,似乎没有任何方法可以做到这一点。我不是一个付费的苹果开发者,只能在我的手机上运行我的应用程序,因为我越狱了,并使用了一个教程使我能够从xcode部署到我的手机。互联网
- (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];
        }
    }
}