رفتن به مطلب
  • 0

لیست کردن برنامه ها دارای یک دسترسی خاص مثل خواندن پیامک ها


mpnbooks

سوال

سلام و شب همگی بخیر

چطور می تونم، لیست برنامه های نصب شده رو گوشی رو، که قادر به خواندن پیامک ها هستند رو داشته باشم؟ (یعنی در قسمت دسترسی ها خواندن پیامک ها مشاهده می شود)

مثلا تمامی برنامه هایی که این دسترسی برایشان وجود داره رو داخل یه لیست بهم بده؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

4 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

خیلی سادس که :fekr:

با فرض اینکه همه کارهای بالا رو انجام دادی

اول یه لیست ویو اضافه کن به اکتیویتی بعد کتابخونه phone رو تیک بزن و با استفاده از پکیجهایی که تو فایل مپ ذخیره کردی مثلا اسم برنامه ها رو توی یه لیست ویو نمایش بده

این یه مثال واسه گرفتن لیست برنامه هایی که دارای دسترسی اینترنت هست

#Region  Project Attributes 
	#ApplicationLabel: B4A Example
	#VersionCode: 1
	#VersionName: 
	'SupportedOrientations possible values: unspecified, landscape or portrait.
	#SupportedOrientations: unspecified
	#CanInstallToExternalStorage: False
#End Region

#If java
import java.util.List;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import anywheresoftware.b4a.BA;
import anywheresoftware.b4a.objects.collections.Map.MyMap;
public MyMap getpermition(String permition){
			PackageManager pm = BA.applicationContext.getPackageManager();
			MyMap requestedPermission=new MyMap();
			List<ApplicationInfo> packages = pm.getInstalledApplications(PackageManager.GET_META_DATA);
			for (ApplicationInfo applicationInfo : packages) {
			   //Log.d("test", "App: " + applicationInfo.name + " Package: " + applicationInfo.packageName);
			   try {
			      PackageInfo packageInfo = pm.getPackageInfo(applicationInfo.packageName, PackageManager.GET_PERMISSIONS);
			      //Get Permissions
			      String[] requestedPermissions = packageInfo.requestedPermissions;
			      if(requestedPermissions != null) {
			         for (int i = 0; i < requestedPermissions.length; i++) {
			            //Log.d("test", requestedPermissions[i]); 
			        	 if (requestedPermissions[i].equalsIgnoreCase(permition)){
			        		requestedPermission.put(i,packageInfo.packageName);
			         }
			      }
			         }
			   } catch (NameNotFoundException e) {
			      e.printStackTrace();
			   }
			}
			return requestedPermission;
	}
#End If

#Region  Activity Attributes 
	#FullScreen: False
	#IncludeTitle: True
#End Region

Sub Process_Globals
	'These global variables will be declared once when the application starts.
	'These variables can be accessed from all modules. 
	
End Sub

Sub Globals
	Private ListView1 As ListView
	Dim p As PackageManager
	Dim joa As JavaObject
	Dim m As Map
End Sub

Sub Activity_Create(FirstTime As Boolean)
'Do not forget to load the layout file created with the visual designer. For example:
Activity.LoadLayout("main")
m.Initialize
	m=joa.InitializeContext.RunMethod("getpermition",Array As Object("android.permission.INTERNET"))
For i=0 To m.Size-1
ListView1.AddSingleLine(p.GetApplicationLabel(m.GetValueAt(i)))
Next
End Sub


Sub Activity_Resume

End Sub


Sub Activity_Pause (UserClosed As Boolean)

End Sub
لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام

تا الان ندیدم بشه دسترسی برنامه هارو خوند  :fekr: اگر بشه خوند همچین کاری که شما میگید امکان پذیر هستش

متاسفانه فکر نمیکنم همچین امکانی وجود داشته باشه  :dance2:

لینک ارسال
به اشتراک گذاری در سایت های دیگر

تو جاوا هر کاری امکان پذیره  مهدی جان :malih:  :fekr:

متد زیر رو به اکتیویتی اضافه کن

#If java
import java.util.List;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import anywheresoftware.b4a.BA;
import anywheresoftware.b4a.objects.collections.Map.MyMap;
public MyMap getpermition(String permition){
			PackageManager pm = BA.applicationContext.getPackageManager();
			MyMap requestedPermission=new MyMap();
			List<ApplicationInfo> packages = pm.getInstalledApplications(PackageManager.GET_META_DATA);
			for (ApplicationInfo applicationInfo : packages) {

			   try {
			      PackageInfo packageInfo = pm.getPackageInfo(applicationInfo.packageName, PackageManager.GET_PERMISSIONS);
			      String[] requestedPermissions = packageInfo.requestedPermissions;
			      if(requestedPermissions != null) {
			         for (int i = 0; i < requestedPermissions.length; i++) {
			        	 if (requestedPermissions[i].equalsIgnoreCase(permition)){
			        		requestedPermission.put(i,packageInfo.packageName);
			         }
			      }
			         }
			   } catch (NameNotFoundException e) {
			      e.printStackTrace();
			   }
			}
			return requestedPermission;
	}
#End If

این متد از نوع map هست و ورودی اون هم یه استرینگ که همون دسترسی مورد نظر هست

دسترسی زیر رو به منیفست اضافه کن

AddPermission(android.permission.GET_TASKS)

حالا کافیه یه متغیر از نوع map تعریف کنی و با استفاده از کتابخونه javaobject متد رو صدا بزنی با دسترسی که میخوای مثلا اینترنت رو مثال بزنیم 

Dim joa As JavaObject
Dim m As Map
m.Initialize
m=joa.InitializeContext.RunMethod("getpermition",Array As Object("android.permission.INTERNET"))

با اجرای این متد پکیج نیم تمامی برنامه هایی که دارای دسترسی اینترنت هست تو یه فایل map ذخیره میشه پکیج نیم برنامه ها رو که داشته باشی میتونی هر کاری بکنی دیگه، مثلا با کتابخونه phone اسم و نام و ... رو میتونی دربیاری

لینک ارسال
به اشتراک گذاری در سایت های دیگر

تو جاوا هر کاری امکان پذیره  مهدی جان :malih:  :fekr:

متد زیر رو به اکتیویتی اضافه کن

#If java
import java.util.List;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import anywheresoftware.b4a.BA;
import anywheresoftware.b4a.objects.collections.Map.MyMap;
public MyMap getpermition(String permition){
			PackageManager pm = BA.applicationContext.getPackageManager();
			MyMap requestedPermission=new MyMap();
			List<ApplicationInfo> packages = pm.getInstalledApplications(PackageManager.GET_META_DATA);
			for (ApplicationInfo applicationInfo : packages) {

			   try {
			      PackageInfo packageInfo = pm.getPackageInfo(applicationInfo.packageName, PackageManager.GET_PERMISSIONS);
			      String[] requestedPermissions = packageInfo.requestedPermissions;
			      if(requestedPermissions != null) {
			         for (int i = 0; i < requestedPermissions.length; i++) {
			        	 if (requestedPermissions[i].equalsIgnoreCase(permition)){
			        		requestedPermission.put(i,packageInfo.packageName);
			         }
			      }
			         }
			   } catch (NameNotFoundException e) {
			      e.printStackTrace();
			   }
			}
			return requestedPermission;
	}
#End If

این متد از نوع map هست و ورودی اون هم یه استرینگ که همون دسترسی مورد نظر هست

دسترسی زیر رو به منیفست اضافه کن

AddPermission(android.permission.GET_TASKS)

حالا کافیه یه متغیر از نوع map تعریف کنی و با استفاده از کتابخونه javaobject متد رو صدا بزنی با دسترسی که میخوای مثلا اینترنت رو مثال بزنیم 

Dim joa As JavaObject
Dim m As Map
m.Initialize
m=joa.InitializeContext.RunMethod("getpermition",Array As Object("android.permission.INTERNET"))

با اجرای این متد پکیج نیم تمامی برنامه هایی که دارای دسترسی اینترنت هست تو یه فایل map ذخیره میشه پکیج نیم برنامه ها رو که داشته باشی میتونی هر کاری بکنی دیگه، مثلا با کتابخونه phone اسم و نام و ... رو میتونی دربیاری

سلام و ممنون بابت پاسختون (کاری که خواستم رو میشه کرد یعنی تو یک برنامه دیدم ولی نحوه انجام دادنش رو نمیدونم)

من برنامه نویس نیستم و فقط اینجا _(answercenter) دارم آموزش های اساتید رو نگاه می کنم، در این مورد متوجه نشدم چیکار باید بکنم،

اون متد رو به اکتیویتی اضافه کردم، دسترسی رو هم به منیفست، و همینطور متغیر از نوع map

ولی باز نمیتونم اون لیست برنامه های دارای دسترسی مثلا اینترنت رو داشته باشم، اگه امکانش هست تو سورس توضیح بدین بسیار بسیار ممنون میشم.

باتشکر

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...