需要根據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. 如何使用提升的權限運行wpf應用程序?
- 3. Android如何檢查應用程序權限?
- 4. 如何在應用程序啓動時請求Android中的運行時權限?
- 5. 檢查權限facebook應用程序
- 6. 使用SDK的Android運行時權限
- 7. 如何在運行時給予應用程序管理權限?
- 8. Android運行時權限 - 應用程序在用戶撤消權限時崩潰。如何處理它?
- 9. 禁用Android M的運行時權限檢查root
- 10. 檢查iOS應用程序權限。發佈應用程序
- 11. 在運行時如何檢查Android安全權限?
- 12. 在android應用程序中使用運行時權限被拒絕
- 13. 檢索正在運行的應用程序權限
- 14. 如何使用android studio運行應用程序時啓用android 6.0中的所有權限
- 15. 如何使應用程序檢查權限是否被授予(6,x +)Android
- 16. 如何檢查服務應用程序的權限?
- 17. Facebook - 使用access_token檢查應用程序的權限
- 18. 如何限制Android應用程序只運行一段時間?
- 19. 檢測應用程序使用權限〜Android
- 20. Android如何檢查權限?
- 21. 在請求運行時權限時關閉應用程序
- 22. 如何使用根控制檯的用戶權限運行應用程序
- 23. android:如何檢查應用程序是否在後臺運行
- 24. 棉花糖運行時權限崩潰的應用程序
- 25. 如何檢查權限是否由運行時用戶在Android上授予?
- 26. 如何授予在棉花糖上運行的Android應用程序的權限?
- 27. 如何使用root訪問權限創建android應用程序?
- 28. 如何使用root權限卸載Android應用程序?
- 29. 如何使用系統權限編譯Android應用程序
- 30. 如何在root權限下運行應用程序?
的可能的複製[如何請求在Android 6定位許可](https://stackoverflow.com/questions/40142331/how-to - 請求定位的許可上-機器人-6) –