1559bf2836f5da25b75bfb229fec0d20d540ee426James Dong/* 2559bf2836f5da25b75bfb229fec0d20d540ee426James Dong * Copyright (C) 2006 The Android Open Source Project 3559bf2836f5da25b75bfb229fec0d20d540ee426James Dong * 4559bf2836f5da25b75bfb229fec0d20d540ee426James Dong * Licensed under the Apache License, Version 2.0 (the "License"); 5559bf2836f5da25b75bfb229fec0d20d540ee426James Dong * you may not use this file except in compliance with the License. 6559bf2836f5da25b75bfb229fec0d20d540ee426James Dong * You may obtain a copy of the License at 7559bf2836f5da25b75bfb229fec0d20d540ee426James Dong * 8559bf2836f5da25b75bfb229fec0d20d540ee426James Dong * http://www.apache.org/licenses/LICENSE-2.0 9559bf2836f5da25b75bfb229fec0d20d540ee426James Dong * 10559bf2836f5da25b75bfb229fec0d20d540ee426James Dong * Unless required by applicable law or agreed to in writing, software 11559bf2836f5da25b75bfb229fec0d20d540ee426James Dong * distributed under the License is distributed on an "AS IS" BASIS, 12559bf2836f5da25b75bfb229fec0d20d540ee426James Dong * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13559bf2836f5da25b75bfb229fec0d20d540ee426James Dong * See the License for the specific language governing permissions and 14559bf2836f5da25b75bfb229fec0d20d540ee426James Dong * limitations under the License. 15559bf2836f5da25b75bfb229fec0d20d540ee426James Dong */ 16559bf2836f5da25b75bfb229fec0d20d540ee426James Dong 17a80b438bf7a8741f1f8215eba896eb20640896f7Sudheer Shanka#include <binder/IActivityManager.h> 18559bf2836f5da25b75bfb229fec0d20d540ee426James Dong#include <binder/IBinder.h> 19559bf2836f5da25b75bfb229fec0d20d540ee426James Dong#include <binder/IServiceManager.h> 20559bf2836f5da25b75bfb229fec0d20d540ee426James Dong 21559bf2836f5da25b75bfb229fec0d20d540ee426James Dong#include "ActivityManager.h" 22559bf2836f5da25b75bfb229fec0d20d540ee426James Dong 23559bf2836f5da25b75bfb229fec0d20d540ee426James Dongnamespace android { 24559bf2836f5da25b75bfb229fec0d20d540ee426James Dong 25559bf2836f5da25b75bfb229fec0d20d540ee426James Dong// Perform ContentProvider.openFile() on the given URI, returning 26559bf2836f5da25b75bfb229fec0d20d540ee426James Dong// the resulting native file descriptor. Returns < 0 on error. 27559bf2836f5da25b75bfb229fec0d20d540ee426James Dongint openContentProviderFile(const String16& uri) 28559bf2836f5da25b75bfb229fec0d20d540ee426James Dong{ 29559bf2836f5da25b75bfb229fec0d20d540ee426James Dong int fd = -1; 30559bf2836f5da25b75bfb229fec0d20d540ee426James Dong 31559bf2836f5da25b75bfb229fec0d20d540ee426James Dong sp<IServiceManager> sm = defaultServiceManager(); 32a80b438bf7a8741f1f8215eba896eb20640896f7Sudheer Shanka sp<IBinder> binder = sm->getService(String16("activity")); 33a80b438bf7a8741f1f8215eba896eb20640896f7Sudheer Shanka sp<IActivityManager> am = interface_cast<IActivityManager>(binder); 34559bf2836f5da25b75bfb229fec0d20d540ee426James Dong if (am != NULL) { 35a80b438bf7a8741f1f8215eba896eb20640896f7Sudheer Shanka fd = am->openContentUri(uri); 36559bf2836f5da25b75bfb229fec0d20d540ee426James Dong } 37559bf2836f5da25b75bfb229fec0d20d540ee426James Dong 38559bf2836f5da25b75bfb229fec0d20d540ee426James Dong return fd; 39559bf2836f5da25b75bfb229fec0d20d540ee426James Dong} 40559bf2836f5da25b75bfb229fec0d20d540ee426James Dong 41559bf2836f5da25b75bfb229fec0d20d540ee426James Dong} /* namespace android */ 42