Jelajahi Sumber

1.修改RA Image Android相机权限判断。

Pen Li 8 tahun lalu
induk
melakukan
a9eaaab19d

+ 49 - 1
RA Image/app/src/main/java/com/usai/redant/raimage/MainActivity.java

@@ -19,6 +19,7 @@ import com.usai.util.Network;
 import com.usai.util.dbUtil;
 import com.usai.util.dbgUtil;
 
+import android.content.pm.PackageManager;
 import android.database.Cursor;
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
@@ -37,6 +38,8 @@ import android.content.Intent;
 import android.content.IntentFilter;
 import android.content.SharedPreferences;
 import android.database.sqlite.SQLiteDatabase;
+import android.provider.Settings;
+import android.support.v4.content.ContextCompat;
 import android.support.v7.app.AppCompatActivity;
 import android.text.TextUtils;
 import android.util.Log;
@@ -52,6 +55,9 @@ import android.widget.TextView;
 
 import org.w3c.dom.Text;
 
+import static android.R.attr.permission;
+import static android.service.notification.Condition.SCHEME;
+
 public class MainActivity extends AppCompatActivity
 {
 	static final boolean newVersion = true;
@@ -127,6 +133,34 @@ public class MainActivity extends AppCompatActivity
 				.show();
 	}
 
+	public boolean checkCameraPermission() {
+		int permission = ContextCompat.checkSelfPermission(MainActivity.this, "android.permission.CAMERA");
+		if (permission == PackageManager.PERMISSION_DENIED) {
+
+			new AlertDialog.Builder(this)
+					.setTitle("Warning")
+					.setMessage("RA Image need camera permission")
+					.setPositiveButton("Setting", new DialogInterface.OnClickListener() {
+						@Override
+						public void onClick(DialogInterface dialog, int which) {
+							Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
+							intent.setData(Uri.parse("package:" + getPackageName()));
+							startActivity(intent);
+						}
+					})
+					.setNegativeButton("No", new DialogInterface.OnClickListener() {
+						@Override
+						public void onClick(DialogInterface dialog, int which) {
+							finish();
+						}
+					})
+					.show();
+
+			return false;
+		}
+		return true;
+	}
+
 	protected void initView() {
 		thumbsImageView = (ImageView)findViewById(R.id.photo_iv);
 		countTextView = (TextView)findViewById(R.id.photo_count_lb);
@@ -145,8 +179,11 @@ public class MainActivity extends AppCompatActivity
 			public void onClick(View v)
 			{
 
-				if (photoList.size() < 1)
+				if (photoList.size() < 1) {
+					StartCamera();
 					return;
+				}
+
 
 //				Intent intent = new Intent(MainActivity.this,
 //						PhotoPreviewActivity.class);
@@ -168,6 +205,11 @@ public class MainActivity extends AppCompatActivity
             public void onClick(View v)
             {
                 Log.d(TAG, "==============>Click Scan button");
+
+				if (!checkCameraPermission()) {
+					return;
+				}
+
                 Intent intent = new Intent();
 
                 intent.setClass(MainActivity.this, CaptureActivity.class);
@@ -280,6 +322,11 @@ public class MainActivity extends AppCompatActivity
 
 	private void StartCamera()
 	{
+
+		if (!checkCameraPermission()) {
+			return;
+		}
+
 		Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
 		// Ensure that there's a camera activity to handle the intent
 
@@ -354,6 +401,7 @@ public class MainActivity extends AppCompatActivity
 	{
 		sendBroadcast(new Intent("REDANT.POP.GPS_ON"));
 		super.onResume();
+
 	}
 
 	@Override

+ 37 - 0
RA Image/app/src/main/java/com/usai/redant/raimage/ServerSettingActivity.java

@@ -5,7 +5,11 @@ import android.app.AlertDialog;
 import android.content.DialogInterface;
 import android.content.Intent;
 import android.content.SharedPreferences;
+import android.content.pm.PackageManager;
+import android.net.Uri;
 import android.os.Bundle;
+import android.provider.Settings;
+import android.support.v4.content.ContextCompat;
 import android.text.TextUtils;
 import android.view.Gravity;
 import android.view.Menu;
@@ -21,6 +25,34 @@ public class ServerSettingActivity extends Activity
 {
 	static final int	REQUEST_SCAN_BARCODE	= 2;
 
+	public boolean checkCameraPermission() {
+		int permission = ContextCompat.checkSelfPermission(ServerSettingActivity.this, "android.permission.CAMERA");
+		if (permission == PackageManager.PERMISSION_DENIED) {
+
+			new AlertDialog.Builder(this)
+					.setTitle("Warning")
+					.setMessage("RA Image need camera permission")
+					.setPositiveButton("Setting", new DialogInterface.OnClickListener() {
+						@Override
+						public void onClick(DialogInterface dialog, int which) {
+							Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
+							intent.setData(Uri.parse("package:" + getPackageName()));
+							startActivity(intent);
+						}
+					})
+					.setNegativeButton("No", new DialogInterface.OnClickListener() {
+						@Override
+						public void onClick(DialogInterface dialog, int which) {
+							finish();
+						}
+					})
+					.show();
+
+			return false;
+		}
+		return true;
+	}
+
 	@Override
 	protected void onCreate(Bundle savedInstanceState)
 	{
@@ -57,6 +89,11 @@ public class ServerSettingActivity extends Activity
 			public void onClick(View v)
 			{
 			//	Log.d(TAG, "==============>Click Scan button");
+				if (!checkCameraPermission()) {
+
+					return;
+				}
+
 				Intent intent = new Intent();
 
 				intent.setClass(ServerSettingActivity.this,