This commit is contained in:
2020-08-26 19:56:45 +08:00
parent 7ff6b2ec35
commit 3ece010fc1
208 changed files with 14753 additions and 637 deletions

View File

@@ -0,0 +1,12 @@
#ifndef CallListner_h
#define CallListner_h
#import <CoreTelephony/CTCallCenter.h>
#import <CoreTelephony/CTCall.h>
@interface CallListner : NSObject
@property (assign, nonatomic)NSString *unityListner;
@property(nonatomic, strong) CTCallCenter* callCenter;
@end
#endif

View File

@@ -0,0 +1,27 @@
fileFormatVersion: 2
guid: 03672e374aa1342ef8be44593f8ebab0
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,87 @@
#import <Foundation/Foundation.h>
#import "CallListner.h"
static CallListner* _CallListner;
@implementation CallListner
+(CallListner*) instance
{
if (_CallListner != nil) {
return _CallListner;
} else {
_CallListner =(CallListner*)([[CallListner alloc] init]);
}
return _CallListner;
}
- (id)init:(NSString *)listner
{
_unityListner = listner;
[self initCallCenter];
return self;
}
- (void)initCallCenter {
bool *isComingCall = false;
_callCenter = [[CTCallCenter alloc] init];
_callCenter.callEventHandler = ^(CTCall* call) {
dispatch_async(dispatch_get_main_queue(), ^{
if ([call.callState isEqualToString:CTCallStateDisconnected]) {
// NSLog("CTCallCenter:Call has been disconnected");
NSLog(@"电话挂断");
if(isComingCall) {
[self sendUnityMessage:@"onEndincomeCall", ""]
} else {
[self sendUnityMessage:@"onEndOutGoingCall", ""]
}
} else if ([call.callState isEqualToString:CTCallStateConnected]) {
// NSLog("CTCallCenter:Callhasjustbeen connected");
NSLog(@"电话接通");
if(isComingCall) {
[self sendUnityMessage:@"onConectedComingCall", ""]
} else {
[self sendUnityMessage:@"onConectedOutGoingCall", ""]
}
} else if ([call.callState isEqualToString:CTCallStateIncoming]) {
// NSLog("CTCallCenter:Call is incoming");
NSLog(@"电话被叫");
isComingCall = true;
} else if ([call.callState isEqualToString:CTCallStateDialing]) {
// NSLog("CTCallCenter:Call is Dialing");
NSLog(@"电话主动拨打电话");
isComingCall = false;
} else {
// NSLog("CTCallCenter:Nothing is done");
NSLog(@"电话其他状态");
}
});
};
}
-(void) sendUnityMessage:(const NSString*)method with:(NSString*)msg
{
if(_unityListner != nil && msg != nil) {
UnitySendMessage([_unityListner UTF8String],
[method UTF8String], [msg UTF8String]);
}
}
@end
#if __cplusplus
extern "C" {
#endif
void _init(const char* goName);
#if __cplusplus
}
#endif
void _init(const char* goName) {
[[CallListner instance] init:[NSString stringWithUTF8String:goName]];
}

View File

@@ -0,0 +1,104 @@
fileFormatVersion: 2
guid: a9a9ea5d9e8164a519f0906e5dd1d0bd
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
'': Any
second:
enabled: 0
settings:
Exclude Android: 1
Exclude Editor: 1
Exclude Linux: 1
Exclude Linux64: 1
Exclude LinuxUniversal: 1
Exclude OSXUniversal: 1
Exclude Win: 1
Exclude Win64: 1
Exclude iOS: 0
- first:
Android: Android
second:
enabled: 0
settings:
CPU: ARMv7
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
CPU: AnyCPU
DefaultValueInitialized: true
OS: AnyOS
- first:
Facebook: Win
second:
enabled: 0
settings:
CPU: AnyCPU
- first:
Facebook: Win64
second:
enabled: 0
settings:
CPU: AnyCPU
- first:
Standalone: Linux
second:
enabled: 0
settings:
CPU: x86
- first:
Standalone: Linux64
second:
enabled: 0
settings:
CPU: x86_64
- first:
Standalone: OSXUniversal
second:
enabled: 0
settings:
CPU: AnyCPU
- first:
Standalone: Win
second:
enabled: 0
settings:
CPU: AnyCPU
- first:
Standalone: Win64
second:
enabled: 0
settings:
CPU: AnyCPU
- first:
iPhone: iOS
second:
enabled: 1
settings:
AddToEmbeddedBinaries: false
CompileFlags:
FrameworkDependencies: CoreTelephony;
- first:
tvOS: tvOS
second:
enabled: 1
settings: {}
userData:
assetBundleName:
assetBundleVariant: