diff options
| author | android-build-team Robot <android-build-team-robot@google.com> | 2017-06-21 07:12:15 +0000 |
|---|---|---|
| committer | android-build-team Robot <android-build-team-robot@google.com> | 2017-06-21 07:12:15 +0000 |
| commit | ba5b2115c55a04a0b9f92e59d74dc824a0f16279 (patch) | |
| tree | a46ed1892cd39ca43665cd6c9f1ce2a74cf16a72 | |
| parent | 78c325f6134261a7e4e405449fb8a77f4468fc4e (diff) | |
| parent | 8edb30c73013b29ff1641244d4905f958c51f9d2 (diff) | |
| download | platform_packages_apps_Nfc-oreo-r5-release.tar.gz platform_packages_apps_Nfc-oreo-r5-release.tar.bz2 platform_packages_apps_Nfc-oreo-r5-release.zip | |
release-request-5bf29450-4eb0-4d71-a15a-d8858bf184d3-for-git_oc-release-4120128 snap-temp-L37600000076154351android-cts-8.0_r9android-cts-8.0_r8android-cts-8.0_r7android-cts-8.0_r6android-cts-8.0_r5android-cts-8.0_r4android-cts-8.0_r3android-cts-8.0_r26android-cts-8.0_r25android-cts-8.0_r24android-cts-8.0_r23android-cts-8.0_r22android-cts-8.0_r21android-cts-8.0_r20android-cts-8.0_r2android-cts-8.0_r19android-cts-8.0_r18android-cts-8.0_r17android-cts-8.0_r16android-cts-8.0_r15android-cts-8.0_r14android-cts-8.0_r13android-cts-8.0_r12android-cts-8.0_r11android-cts-8.0_r10android-cts-8.0_r1android-8.0.0_r9android-8.0.0_r7android-8.0.0_r4android-8.0.0_r36android-8.0.0_r35android-8.0.0_r32android-8.0.0_r31android-8.0.0_r30android-8.0.0_r3android-8.0.0_r29android-8.0.0_r28android-8.0.0_r2android-8.0.0_r17android-8.0.0_r16android-8.0.0_r15android-8.0.0_r13android-8.0.0_r12android-8.0.0_r11android-8.0.0_r10android-8.0.0_r1oreo-releaseoreo-r6-releaseoreo-r5-releaseoreo-r4-releaseoreo-r3-releaseoreo-r2-releaseoreo-cts-release
Change-Id: Iaae3102e3d6daeb267d3653322f58aa22f108ed9
| -rw-r--r-- | src/com/android/nfc/BeamShareActivity.java | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/src/com/android/nfc/BeamShareActivity.java b/src/com/android/nfc/BeamShareActivity.java index dca4cc70..4cc29b00 100644 --- a/src/com/android/nfc/BeamShareActivity.java +++ b/src/com/android/nfc/BeamShareActivity.java @@ -19,6 +19,8 @@ package com.android.nfc; import java.util.ArrayList; import android.app.Activity; +import android.app.ActivityManager; +import android.app.ActivityManagerNative; import android.app.AlertDialog; import android.content.BroadcastReceiver; import android.content.Context; @@ -26,6 +28,7 @@ import android.content.DialogInterface; import android.content.ClipData; import android.content.Intent; import android.content.IntentFilter; +import android.content.pm.PackageManager; import android.net.Uri; import android.nfc.BeamShareData; import android.nfc.NdefMessage; @@ -33,8 +36,11 @@ import android.nfc.NdefRecord; import android.nfc.NfcAdapter; import android.os.Bundle; import android.os.UserHandle; +import android.os.RemoteException; import android.util.Log; +import android.util.EventLog; import android.webkit.URLUtil; +import android.Manifest.permission; import com.android.internal.R; @@ -212,16 +218,26 @@ public class BeamShareActivity extends Activity { int numValidUris = 0; for (Uri uri : mUris) { try { + int uid = ActivityManagerNative.getDefault().getLaunchedFromUid(getActivityToken()); + if (uri.getScheme().equalsIgnoreCase("file") && + getApplicationContext().checkPermission(permission.READ_EXTERNAL_STORAGE, -1, uid) != + PackageManager.PERMISSION_GRANTED) { + Log.e(TAG, "File based Uri doesn't have External Storage Permission."); + EventLog.writeEvent(0x534e4554, "37287958", uid, uri.getPath()); + break; + } grantUriPermission("com.android.nfc", uri, Intent.FLAG_GRANT_READ_URI_PERMISSION); uriArray[numValidUris++] = uri; if (DBG) Log.d(TAG, "Found uri: " + uri); } catch (SecurityException e) { Log.e(TAG, "Security exception granting uri permission to NFC process."); - numValidUris = 0; + break; + } catch (RemoteException e) { + Log.e(TAG, "Remote exception accessing uid of the calling process."); break; } } - if (numValidUris > 0) { + if (numValidUris != 0 && numValidUris == mUris.size()) { shareData = new BeamShareData(null, uriArray, myUserHandle, 0); } else { // No uris left |
