需要根據android 6及以上標準檢查android應用程序用戶授予所需權限(特別是讀取用戶設備短信)。我特別尋找android開發人員網站上描述的ContextCompat.checkSelfPermission()
方法。 在這裏看到: link如何使用ContextCompat.checkSelfPermission()檢查運行時的android應用程序權限?
-5
A
回答
1
static final int PERMISSION_ALL = 1;
String[] PERMISSIONS =
{Manifest.permission.ACCESS_COARSE_LOCATION,
Manifest.permission.ACCESS_FINE_LOCATION};
protected void runtimePermission() {
if (!hasPermission(ContactUS.this, PERMISSIONS)) {
ActivityCompat.requestPermissions(this, PERMISSIONS, PERMISSION_ALL);
}
}
public static boolean hasPermission(Context context, String... permissions) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && context != null && permissions != null) {
for (String permission : permissions) {
if (ActivityCompat.checkSelfPermission(context, permission) != PackageManager.PERMISSION_GRANTED) {
return false;
}
}
}
return true;
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
switch (requestCode) {
case PERMISSION_ALL:
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
//permission granted
//your logic here
} else {
//permission denied
}
break;
}
}
0
如果許可被授予:
checkSelfPermission(Manifest.permission.READ_CONTACTS)
請求的權限,如果有必要
if (checkSelfPermission(Manifest.permission.READ_CONTACTS)
!= PackageManager.PERMISSION_GRANTED) {
requestPermissions(new String[]{Manifest.permission.READ_CONTACTS},
MY_PERMISSIONS_REQUEST_READ_CONTACTS);
/* MY_PERMISSIONS_REQUEST_READ_CONTACTS is an app-defined int constant */
return;
}
處理的權限請求響應
@Override
public void onRequestPermissionsResult(int requestCode,
String permissions[], int[] grantResults) {
switch (requestCode) {
case MY_PERMISSIONS_REQUEST_READ_CONTACTS: {
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
/* permission granted */
} else {
/* permission denied */
}
return;
}
/* check for other permissions */
}
}
此外,你可以使用庫如this,無論如何祝你好運!
0
您可以添加運行時允許這樣 按照此步驟
第1步: - 首先在manifiest文件
android.Manifest.permission.ACCESS_FINE_LOCATION,
android.Manifest.permission.ACCESS_COARSE_LOCATION,
現在添加此權限,比
第2步:詢問運行時權限
String permission = android.Manifest.permission.ACCESS_FINE_LOCATION;
if (ActivityCompat.checkSelfPermission(SearchCityClass.this, permission)
!= PackageManager.PERMISSION_GRANTED && ActivityCompat.
checkSelfPermission(SearchCityClass.this, android.Manifest.permission.ACCESS_COARSE_LOCATION)
!= PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(SearchCityClass.this, new String[]
{permission}, PERMISSION_GPS_CODE);
}
步驟3:finallly處理permsiion結果在onRequestPermissionsResult
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
@NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == PERMISSION_GPS_CODE) {
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
Toast.makeText(this, location_permission_granted_msg, Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, location_permission_not_granted_msg, Toast.LENGTH_SHORT).show();
}
}
}
相關問題
- 1. 檢查Android設備中應用程序的運行時權限
- 2. Android如何檢查應用程序權限?
- 3. 如何在應用程序啓動時請求Android中的運行時權限?
- 4. 使用SDK的Android運行時權限
- 5. 如何在運行時給予應用程序管理權限?
- 6. Android運行時權限 - 應用程序在用戶撤消權限時崩潰。如何處理它?
- 7. 禁用Android M的運行時權限檢查root
- 8. 在運行時如何檢查Android安全權限?
- 9. 在android應用程序中使用運行時權限被拒絕
- 10. 如何使用android studio運行應用程序時啓用android 6.0中的所有權限
- 11. 如何使應用程序檢查權限是否被授予(6,x +)Android
- 12. 在請求運行時權限時關閉應用程序
- 13. 如何使用根控制檯的用戶權限運行應用程序
- 14. android:如何檢查應用程序是否在後臺運行
- 15. 如何使用root訪問權限創建android應用程序?
- 16. 如何使用root權限卸載Android應用程序?
- 17. 如何使用系統權限編譯Android應用程序
- 18. C#應用程序沒有使用管理權限運行
- 19. 如何使用權限訪問_every_目錄來運行我的應用程序?
- 20. 如何使用80端口上的root權限運行瓶式應用程序?
- 21. 如何在Android中使用運行時權限數據庫
- 22. Android應用程序的權限訪問
- 23. Android授予我的應用程序運行時權限,而不詢問
- 24. 如何獲得相機權限是在Android應用程序的應用程序權限啓用?
- 25. Windows應用程序運行它的用戶的不同權限
- 26. 如何在C程序中使用root權限運行bash?
- 27. 如何運行程序並阻止其Internet使用權限?
- 28. 運行SQL Service Broker應用程序的最低用戶權限
- 29. 如何在android Unity應用程序中禁用android運行時位置權限提示
- 30. 如何在運行時檢查手機鎖定時的授權權限?
的可能的複製[如何請求在Android 6定位許可](https://stackoverflow.com/questions/40142331/how-to - 請求定位的許可上-機器人-6) –