{ "id": "170101", "key": "TIMOB-25439", "fields": { "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false }, "project": { "id": "10153", "key": "TIMOB", "name": "Titanium SDK/CLI", "projectCategory": { "id": "10100", "description": "Titanium and related SDKs used in application development", "name": "Client" } }, "fixVersions": [ { "id": "19906", "description": "", "name": "Release 6.3.0", "archived": false, "released": true, "releaseDate": "2017-11-01" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2017-10-30T20:27:58.000+0000", "created": "2017-10-24T11:26:34.000+0000", "priority": { "name": "Critical", "id": "1" }, "labels": [ "Android", "File", "Intent" ], "versions": [], "issuelinks": [ { "id": "56538", "type": { "id": "10002", "name": "Duplicate", "inward": "is duplicated by", "outward": "duplicates" }, "inwardIssue": { "id": "155547", "key": "TIMOB-20533", "fields": { "summary": "Ti.Android.Intent is not working properly", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "High", "id": "2" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "56104", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "169947", "key": "TIMOB-25363", "fields": { "summary": "Android: Intents should use ContentProvider", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "High", "id": "2" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } } ], "assignee": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2018-05-16T22:49:59.000+0000", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "components": [ { "id": "10202", "name": "Android", "description": "Android Platform" } ], "description": "Affects 6.2.2, 6.3.X on Android 8.\r\n\r\nIt works on Android 7 and 7.1\r\n\r\nAndroid N sets a new restriction in the use of URIs. It must be a Content URI instead a file URI. In that case, if we try to share some file throught nativePath it fails.\r\n\r\nSteps:\r\n\r\nRead some file in your app (be sure it is placed in the external storage), after that try to share it via intent chooser:\r\n\r\n\r\n{code:javascript}\r\n var file = Ti.Filesystem.getFile(Ti.Filesystem.externalStorageDirectory, 'example.pdf');\r\n var intent = Ti.Android.createIntent({\r\n action: Ti.Android.ACTION_SEND,\r\n type: file.read()\r\n .getMimeType()\r\n });\r\n\r\n intent.addCategory(Ti.Android.CATEGORY_DEFAULT);\r\n //In this point nativePath is 'file://' URI. It will throw the exception\r\n intent.putExtraUri(Ti.Android.EXTRA_STREAM, file.nativePath);\r\n\r\n var chooser = Ti.Android.createIntentChooser(intent, 'Share');\r\n\r\n $.win.activity.startActivity(chooser);\r\n{code}\r\n", "attachment": [ { "id": "63469", "filename": "image-2017-10-24-13-21-26-117.png", "author": { "name": "jormagar", "key": "jormagar", "displayName": "Jorge Macias Garcia", "active": true, "timeZone": "Europe/Brussels" }, "created": "2017-10-24T11:21:27.000+0000", "size": 37577, "mimeType": "image/png" }, { "id": "63485", "filename": "IntentActionSendTest.js", "author": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-10-27T00:30:59.000+0000", "size": 720, "mimeType": "application/x-javascript" } ], "flagged": false, "summary": "Android: Intent extra 'file://' URI not working on Android 7 or higher", "creator": { "name": "jormagar", "key": "jormagar", "displayName": "Jorge Macias Garcia", "active": true, "timeZone": "Europe/Brussels" }, "subtasks": [], "reporter": { "name": "jormagar", "key": "jormagar", "displayName": "Jorge Macias Garcia", "active": true, "timeZone": "Europe/Brussels" }, "environment": null, "comment": { "comments": [ { "id": "429684", "author": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "body": "This has been addressed here: https://github.com/appcelerator/titanium_mobile/pull/9559", "updateAuthor": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-10-26T18:13:33.000+0000", "updated": "2017-10-26T18:13:33.000+0000" }, { "id": "429715", "author": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "body": "The attached [^IntentActionSendTest.js] script can be used to test Intent.putExtraUri() content provider access.", "updateAuthor": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-10-27T00:31:58.000+0000", "updated": "2017-10-27T00:31:58.000+0000" }, { "id": "429759", "author": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "body": "master: https://github.com/appcelerator/titanium_mobile/pull/9559\r\n6_3_X: https://github.com/appcelerator/titanium_mobile/pull/9566", "updateAuthor": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-10-27T21:54:42.000+0000", "updated": "2017-10-27T21:54:42.000+0000" }, { "id": "429856", "author": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "body": "FR passed for both master & backport PR's.\r\n\r\nBackport PR merged. Waiting for master merge to get enabled.", "updateAuthor": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-10-30T20:27:47.000+0000", "updated": "2017-10-30T20:27:47.000+0000" }, { "id": "429872", "author": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Verified the fix with SDK 6.3.0.v20171030135813.\r\n\r\nStudio Ver: 4.10.0.201709271713\r\nOS Ver: 10.12.3\r\nXcode Ver: Xcode 8.3.3\r\nAppc NPM: 4.2.10-2\r\nAppc CLI: 6.3.0-master.15\r\nTi CLI Ver: 5.0.14\r\nAlloy Ver: 1.10.6\r\nNode Ver: 7.10.1\r\nJava Ver: 1.8.0_101\r\nDevices: ⇨ google Nexus 6P --- Android 8.0.0\r\n ⇨ google Nexus 5 --- Android 6.0.1\r\n", "updateAuthor": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-10-31T01:15:05.000+0000", "updated": "2017-10-31T01:15:05.000+0000" }, { "id": "430426", "author": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Master PR merged.\r\nClosing.", "updateAuthor": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-11-10T22:16:05.000+0000", "updated": "2017-11-10T22:16:05.000+0000" } ], "maxResults": 11, "total": 11, "startAt": 0 } } }