2012-04-04 4 views
-1

Ich versuche festzustellen, ob das iOS-Gerät über eine Kamera verfügt. Ich weiß, dass es Möglichkeiten gibt, sie zu erkennen, aber ich brauche Hilfe, um eine Warnung zu machen, dass, wenn keine Kamera vorhanden ist, der Benutzer gewarnt wird.Kamera erkennen und Alarmansicht verwenden

Heres mein Code .... its nach unten, wo sie ein Bild

#import "CameraViewController.h" 

@implementation CameraViewController 


@synthesize imageView; 
@synthesize takePictureButton; 
@synthesize selectFromCameraRollButton; 




/* 
// The designated initializer. Override to perform setup that is required before the view is loaded. 
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { 
    if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) { 
     // Custom initialization 
    } 
    return self; 
} 
*/ 

/* 
// Implement loadView to create a view hierarchy programmatically, without using a nib. 
- (void)loadView { 
} 
*/ 



// Implement viewDidLoad to do additional setup after loading the view, typically from a nib. 
- (void)viewDidLoad { 
    [super viewDidLoad]; 
    /*if(! [UIImagePickerController isSourceTypeAvailable: 
     UIImagePickerControllerSourceTypeCamera]) 
    { 
     takePictureButton.hidden = YES; 
     selectFromCameraRollButton.hidden = YES; 
    }*/ 
} 



/* 
// Override to allow orientations other than the default portrait orientation. 
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
    // Return YES for supported orientations 
    return (interfaceOrientation == UIInterfaceOrientationPortrait); 
} 
*/ 

- (void)didReceiveMemoryWarning { 
    // Releases the view if it doesn't have a superview. 
    [super didReceiveMemoryWarning]; 

    // Release any cached data, images, etc that aren't in use. 
} 

- (void)viewDidUnload { 
    // Release any retained subviews of the main view. 
    // e.g. self.myOutlet = nil; 
} 


- (void)dealloc { 
    [imageView release]; 
    [takePictureButton release]; 
    [selectFromCameraRollButton release]; 
    [super dealloc]; 
} 

-(IBAction)getCameraPicture:(id)sender 
{ 
    UIImagePickerController *picker = [[UIImagePickerController alloc] init]; 
    picker.delegate = self; 
    picker.allowsImageEditing = YES; 
    picker.sourceType = (sender == takePictureButton) ? UIImagePickerControllerSourceTypeCamera : 
    UIImagePickerControllerSourceTypeSavedPhotosAlbum; 
    [self presentModalViewController: picker animated:YES]; 
    [picker release]; 
    upload.hidden = NO; 


} 

-(IBAction)selectExitingPicture 
{ 
    if([UIImagePickerController isSourceTypeAvailable: 
     UIImagePickerControllerSourceTypePhotoLibrary]) 
    { 
     UIImagePickerController *picker= [[UIImagePickerController alloc]init]; 
     picker.delegate = self; 
     picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; 
     [self presentModalViewController:picker animated:YES]; 
     [picker release]; 
     upload.hidden = NO; 

    } 


} 

-(void)imagePickerController:(UIImagePickerController *)picker 
    didFinishPickingImage : (UIImage *)image 
editingInfo:(NSDictionary *)editingInfo 
{ 
    imageView.image = image; 
    [picker dismissModalViewControllerAnimated:YES]; 
} 


-(void)imagePickerControllerDidCancel:(UIImagePickerController *) picker 
{ 
    [picker dismissModalViewControllerAnimated:YES]; 
    upload.hidden = NO; 
} 


- (IBAction)uploadImage { 
    /* 
    turning the image into a NSData object 
    getting the image back out of the UIImageView 
    setting the quality to 90 
    */ 
    NSData *imageData = UIImageJPEGRepresentation(imageView.image, 90); 
    // setting up the URL to post to 




    //over here 
    NSString *urlString = @"/over here puut your url"; 

    // setting up the request object now 
    NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease]; 
    [request setURL:[NSURL URLWithString:urlString]]; 
    [request setHTTPMethod:@"POST"]; 

    /* 
    add some header info now 
    we always need a boundary when we post a file 
    also we need to set the content type 

    You might want to generate a random boundary.. this is just the same 
    as my output from wireshark on a valid html post 
    */ 
    NSString *boundary = [NSString stringWithString:@"---------------------------14737809831466499882746641449"]; 
    NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary]; 
    [request addValue:contentType forHTTPHeaderField: @"Content-Type"]; 

    /* 
    now lets create the body of the post 
    */ 
    NSMutableData *body = [NSMutableData data]; 
    [body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];  
    [body appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"userfile\"; filename=\"ipodfile.jpg\"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; 
    [body appendData:[[NSString stringWithString:@"Content-Type: application/octet-stream\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; 
    [body appendData:[NSData dataWithData:imageData]]; 
    [body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 
    // setting the body of the post to the reqeust 
    [request setHTTPBody:body]; 

    // now lets make the connection to the web 
    NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; 
    NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding]; 

    NSLog(returnString); 
} 




@end 

Antwort

1

nimmt können Sie:

[UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]; 

http://blog.mugunthkumar.com/coding/iphone-tutorial-better-way-to-check-capabilities-of-ios-devices/

Dann eine Benachrichtigung zu erstellen, verwenden Sie einfach die [ [UIAlertView alloc] initWithTitle ...] Methode, und rufen Sie nach der Erstellung show auf.

+0

Wo gebe ich den [UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypePhotoLibrary]; verfügbar? – Yomo710

+0

Ich habe meinen Code dort oben – Yomo710

Verwandte Themen