מדוע לאפליקציית האנדרואיד יש צורך לגישה מלאה לקבצי המכשיר?
ראשית רציתי להודות על ההשקעה בפיתוח אפליקציה שכזאת עם רישיון פתוח. נתקלתי בתוכנה באתר מתמחים וכאשר ניסיתי להתקין את אפליקציית האנדרואיד על המכשיר היתה דרישה לקבל גישה מלאה לקבצי המכשיר ואיני מבין מדוע צריך גישה רחבה כל כך. האם תוכל לעדכן לגירסה עם הרשאה מינימלית לתפעול שלה כדי להפיג חשש מפגיעה בפרטיות?
תודה!
ראשית חשוב לי להדגיש שכל הקוד הוא פתוח וניתן לראות בדיוק מה התוכנה עושה, כך שאין חשש לפגיעה בפרטיות באמצעות גישה לא מורשית לקבצים. לעצם השאלה, היות והתוכנה קוראת קבצי טקסט מאחסון המשתמש, אז ההרשאה הזו הכרחית. ההרשאה המצומצמת יותר READ_MEDIA_IMAGES מתאימה רק לקבצי מדיה כגון תמונות. ולתת למשתמש לבחור בכל פעם את הקובץ זה לא מעשי כמובן. ניתן לקרוא עוד על ההרשאה הזו כאן: https://developer.android.com/training/data-storage/manage-all-files
כמובן שאם יימצא תחליף אשמח לוותר על ההרשאה, שמגבילה בין השאר את האפשרות להעלות את האפליקציה לgoogle-play.
בתאריך יום ב׳, 12 באוג׳ 2024, 19:15, מאת nirmitlamed < @.***>:
ראשית רציתי להודות על ההשקעה בפיתוח אפליקציה שכזאת עם רישיון פתוח. נתקלתי בתוכנה באתר מתמחים וכאשר ניסיתי להתקין את אפליקציית האנדרואיד על המכשיר היתה דרישה לקבל גישה מלאה לקבצי המכשיר ואיני מבין מדוע צריך גישה רחבה כל כך. האם תוכל לעדכן לגירסה עם הרשאה מינימלית לתפעול שלה כדי להפיג חשש מפגיעה בפרטיות?
תודה!
— Reply to this email directly, view it on GitHub https://github.com/Sivan22/otzaria/issues/172, or unsubscribe https://github.com/notifications/unsubscribe-auth/AVHE7POXXOEUKYQQQDKMJETZRDNSJAVCNFSM6AAAAABMMP4NH2VHI2DSMVQWIX3LMV43ASLTON2WKOZSGQ3DCNBRGE2DAMQ . You are receiving this because you are subscribed to this thread.Message ID: @.***>
אין לי יכולת להבין את הקוד לצערי. האם יש אפשרות לצמצם זאת להרשאה לתיקיה בלבד? תודה על המענה.
כמו שמוסבר בלינק שצירפתי, החל מאנדרואיד 11 לא יכולה להיות גישה לשום תיקייה על המכשיר בלי ההרשאה הזו.
בתאריך יום ג׳, 13 באוג׳ 2024, 17:25, מאת nirmitlamed < @.***>:
אין לי יכולת להבין את הקוד לצערי. האם יש אפשרות לצמצם זאת להרשאה לתיקיה בלבד? תודה על המענה.
— Reply to this email directly, view it on GitHub https://github.com/Sivan22/otzaria/issues/172#issuecomment-2286391832, or unsubscribe https://github.com/notifications/unsubscribe-auth/AVHE7PIJPSP6TQWQLJNJAJLZRIJMVAVCNFSM6AAAAABMMP4NH2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEOBWGM4TCOBTGI . You are receiving this because you commented.Message ID: @.***>
כדי להפיג חשש מפגיעה בפרטיות?
כל הקוד הוא פתוח
אין לי יכולת להבין את הקוד
ואז מה? החשש הופג, לא?
ראשית רציתי להודות על ההשקעה בפיתוח אפליקציה שכזאת עם רישיון פתוח. נתקלתי בתוכנה באתר מתמחים וכאשר ניסיתי להתקין את אפליקציית האנדרואיד על המכשיר היתה דרישה לקבל גישה מלאה לקבצי המכשיר ואיני מבין מדוע צריך גישה רחבה כל כך. האם תוכל לעדכן לגירסה עם הרשאה מינימלית לתפעול שלה כדי להפיג חשש מפגיעה בפרטיות?
תודה!
כפי שאפשר לראות בקובץ הAndroidManifest.xml, ההרשאות שהאפליקציה דורשת הן רק הרשאות גישה לאחסון
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"/>
אך ללא גישה לרשת או כל אופציה לשדר את הנתונים החוצה....
ככה שזה די מסדר את עניין הפרטיות.
הקובץ נמצא כאן,
https://github.com/Sivan22/otzaria/blob/main/android/app/src/main/AndroidManifest.xml
זה הקובץ שבו מצהירים על הרשאות באפליקציות אנדרואיד.
אתה כמובן יכול לחפש באינטרנט עליו ולקרוא כדי לוודא שמה שאני כותב נכון :)
ראשית חשוב לי להדגיש שכל הקוד הוא פתוח וניתן לראות בדיוק מה התוכנה עושה, כך שאין חשש לפגיעה בפרטיות באמצעות גישה לא מורשית לקבצים. לעצם השאלה, היות והתוכנה קוראת קבצי טקסט מאחסון המשתמש, אז ההרשאה הזו הכרחית. ההרשאה המצומצמת יותר READ_MEDIA_IMAGES מתאימה רק לקבצי מדיה כגון תמונות. ולתת למשתמש לבחור בכל פעם את הקובץ זה לא מעשי כמובן. ניתן לקרוא עוד על ההרשאה הזו כאן: https://developer.android.com/training/data-storage/manage-all-files כמובן שאם יימצא תחליף אשמח לוותר על ההרשאה, שמגבילה בין השאר את האפשרות להעלות את האפליקציה לgoogle-play. בתאריך יום ב׳, 12 באוג׳ 2024, 19:15, מאת nirmitlamed < @.>: … ראשית רציתי להודות על ההשקעה בפיתוח אפליקציה שכזאת עם רישיון פתוח. נתקלתי בתוכנה באתר מתמחים וכאשר ניסיתי להתקין את אפליקציית האנדרואיד על המכשיר היתה דרישה לקבל גישה מלאה לקבצי המכשיר ואיני מבין מדוע צריך גישה רחבה כל כך. האם תוכל לעדכן לגירסה עם הרשאה מינימלית לתפעול שלה כדי להפיג חשש מפגיעה בפרטיות? תודה! — Reply to this email directly, view it on GitHub <#172>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AVHE7POXXOEUKYQQQDKMJETZRDNSJAVCNFSM6AAAAABMMP4NH2VHI2DSMVQWIX3LMV43ASLTON2WKOZSGQ3DCNBRGE2DAMQ . You are receiving this because you are subscribed to this thread.Message ID: @.>
סיוון, ממתי ההגבלה הזו בגוגל פליי? יש לא מעט אפליקציות שעושות בה שימוש, למשל סיירי קבצים, נגני מוזיקה, ועוד. ראיתי בחלקם שהם מבקשים בהפעלה הראשונה לבחור את התיקיה בה עושים שימוש, (ואפשר פשוט לבחור את הראשית) אולי זה הפיתרון? צריך לחקור לעומק
צריך לחקור לעומק
תוכל בבקשה לקחת את זה על עצמך? הכיוון שלי: ContentProvider להבנתי, זה נותן גישה לספרייה ספציפית. כתבתי זאת ל @Sivan22 אך לא יצא משהו ברור, עדיף שיתעסק בדברים מועילים יותר מאשר בזה, לפחות לדעתי. אם אתה מוכן לעבוד ע"ז - יהיה מצויין!
צריך לחקור לעומק
תוכל בבקשה לקחת את זה על עצמך? הכיוון שלי: ContentProvider להבנתי, זה נותן גישה לספרייה ספציפית. כתבתי זאת ל @Sivan22 אך לא יצא משהו ברור, עדיף שיתעסק בדברים מועילים יותר מאשר בזה, לפחות לדעתי. אם אתה מוכן לעבוד ע"ז - יהיה מצויין!
שאלתי ב- ChatGPT והוא ציין שאפשר גם ב- ContentPriveder אבל גם ב- FilePicker שתומך בבחירה של תיקייה, רק יש צורך להפעיל את הפרמטר הזה.: You can use the FilePicker class to pick a directory. The pickFiles method has an allowFolder parameter that you can set to true to enable directory picking.
וזאת הדוגמא שהוא נתן לי:
import 'package:flutter/material.dart';
import 'package:file_picker/file_picker.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: FolderPickerExample(),
);
}
}
class FolderPickerExample extends StatefulWidget {
@override
_FolderPickerExampleState createState() => _FolderPickerExampleState();
}
class _FolderPickerExampleState extends State<FolderPickerExample> {
String? _selectedFolderPath;
Future<void> _pickFolder() async {
try {
String? selectedDirectory = await FilePicker.platform.getDirectoryPath(
dialogTitle: 'Select Library Folder',
);
if (selectedDirectory != null) {
setState(() {
_selectedFolderPath = selectedDirectory;
});
} else {
// User canceled the picker
}
} catch (e) {
// Handle any errors here
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Select Library Folder'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(_selectedFolderPath ?? 'No folder selected'),
ElevatedButton(
onPressed: _pickFolder,
child: Text('Pick Folder'),
),
],
),
),
);
}
}
פה ראיתי הסבר על ה- FilePicker וגם ראיתי למטה שמדברים על Intent שנותן גישה לתתי תיקיות להבנתי: [ACTION_OPEN_DOCUMENT_TREE] https://developer.android.com/training/data-storage/shared/documents-files#grant-access-directory
צריך לחקור לעומק
תוכל בבקשה לקחת את זה על עצמך? הכיוון שלי: ContentProvider להבנתי, זה נותן גישה לספרייה ספציפית. כתבתי זאת ל @Sivan22 אך לא יצא משהו ברור, עדיף שיתעסק בדברים מועילים יותר מאשר בזה, לפחות לדעתי. אם אתה מוכן לעבוד ע"ז - יהיה מצויין!
להבנתי - תקנו אותי אם אני טועה - האפליקציה לאנדרואיד לא כתובה בJAVA, אלא בפלאטר\קוטלין. 2 שפות שאני לא יודע.
האפליקציה לאנדרואיד לא כתובה בJAVA, אלא בפלאטר\קוטלין. 2 שפות שאני לא יודע.
גם אני לא יודע, מה שאני כן יודע, שפלאטר זו שפה מרובת יישומים - כלומר, שאותו קוד לווינדוס "מועיל" גם לאנדרואיד. מקווה שאני לא מקשקש. עכ"פ לווינדוס זה וודאי בדארט-פלאטר.