Add runtime request permission for sdk26.

Add keystore.jks.
camera2
obarong 5 years ago committed by 罗锦荣
parent 9fbb0d4d0d
commit a648920edf

@ -6,19 +6,31 @@ android {
defaultConfig { defaultConfig {
applicationId "net.ossrs.yasea.demo" applicationId "net.ossrs.yasea.demo"
minSdkVersion 18 minSdkVersion 18
targetSdkVersion 22 targetSdkVersion 26
versionCode 1 versionCode 1
versionName "2.6" versionName "2.6"
ndk { ndk {
abiFilters "armeabi-v7a", "arm64-v8a", "x86", "mips" abiFilters "armeabi-v7a", "arm64-v8a", "x86", "mips"
} }
} }
//
signingConfigs {
config {
keyAlias 'key0'
keyPassword '123456'
storeFile file('../keystore.jks')
storePassword '123456'
}
}
buildTypes { buildTypes {
release { release {
minifyEnabled false minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.config
} }
} }
} }
dependencies { dependencies {

@ -1,11 +1,16 @@
package net.ossrs.yasea.demo; package net.ossrs.yasea.demo;
import android.Manifest;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.content.pm.ActivityInfo; import android.content.pm.ActivityInfo;
import android.content.pm.PackageManager;
import android.content.res.Configuration; import android.content.res.Configuration;
import android.hardware.Camera; import android.hardware.Camera;
import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.Environment; import android.os.Environment;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AppCompatActivity; import android.support.v7.app.AppCompatActivity;
import android.util.Log; import android.util.Log;
import android.view.Menu; import android.view.Menu;
@ -32,6 +37,7 @@ public class MainActivity extends AppCompatActivity implements RtmpHandler.RtmpL
SrsRecordHandler.SrsRecordListener, SrsEncodeHandler.SrsEncodeListener { SrsRecordHandler.SrsRecordListener, SrsEncodeHandler.SrsEncodeListener {
private static final String TAG = "Yasea"; private static final String TAG = "Yasea";
public final static int RC_CAMERA = 100;
private Button btnPublish; private Button btnPublish;
private Button btnSwitchCamera; private Button btnSwitchCamera;
@ -48,6 +54,7 @@ public class MainActivity extends AppCompatActivity implements RtmpHandler.RtmpL
private int mWidth = 640; private int mWidth = 640;
private int mHeight = 480; private int mHeight = 480;
private boolean isPermissionGranted = false;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
@ -59,6 +66,41 @@ public class MainActivity extends AppCompatActivity implements RtmpHandler.RtmpL
// response screen rotation event // response screen rotation event
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR);
requestPermission();
}
private void requestPermission() {
//1. 检查是否已经有该权限
if (Build.VERSION.SDK_INT >= 23 && (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA)
!= PackageManager.PERMISSION_GRANTED || ContextCompat.checkSelfPermission(this, Manifest.permission.RECORD_AUDIO)
!= PackageManager.PERMISSION_GRANTED)) {
//2. 权限没有开启,请求权限
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO}, RC_CAMERA);
}else{
//权限已经开启,做相应事情
isPermissionGranted = true;
init();
}
}
//3. 接收申请成功或者失败回调
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == RC_CAMERA) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
//权限被用户同意,做相应的事情
isPermissionGranted = true;
init();
} else {
//权限被用户拒绝,做相应的事情
finish();
}
}
}
private void init() {
// restore data. // restore data.
sp = getSharedPreferences("Yasea", MODE_PRIVATE); sp = getSharedPreferences("Yasea", MODE_PRIVATE);
rtmpUrl = sp.getString("rtmpUrl", rtmpUrl); rtmpUrl = sp.getString("rtmpUrl", rtmpUrl);
@ -249,7 +291,7 @@ public class MainActivity extends AppCompatActivity implements RtmpHandler.RtmpL
@Override @Override
protected void onStart() { protected void onStart() {
super.onStart(); super.onStart();
if(mPublisher.getCamera() == null){ if(mPublisher.getCamera() == null && isPermissionGranted){
//if the camera was busy and available again //if the camera was busy and available again
mPublisher.startCamera(); mPublisher.startCamera();
} }
@ -447,4 +489,5 @@ public class MainActivity extends AppCompatActivity implements RtmpHandler.RtmpL
public void onEncodeIllegalArgumentException(IllegalArgumentException e) { public void onEncodeIllegalArgumentException(IllegalArgumentException e) {
handleException(e); handleException(e);
} }
} }

Binary file not shown.

@ -5,7 +5,7 @@ android {
defaultConfig { defaultConfig {
minSdkVersion 18 minSdkVersion 18
targetSdkVersion 22 targetSdkVersion 26
versionCode 1 versionCode 1
versionName "2.6" versionName "2.6"

Loading…
Cancel
Save