我正在开发一个项目,试图将数据从Android应用程序发送到Tizen佩戴手表。我有一个由三星提供的示例应用程序,但这是超级旧的,基于Eclipse,(R.I.P)。
所以,我创建了一个示例应用程序,第一步是获取权限(对于Marshmallow OS)。这些权限由Manifest文件中的示例代码提供。
代码>
所以,我正试图在App启动时获得这些权限。
公共类MainActivity扩展了AppCompatActivity
{
private static final String TAG =“MainActivity”;
private static final int MY_PERMISSIONS_REQUEST = 101;
@覆盖
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
的setContentView(R.layout.activity_main);
//检查权限
getPermissions();
}
public void getPermissions()
{
//无需解释,我们可以申请许可。
ActivityCompat.requestPermissions(this,new String [] {
Manifest.permission.BLUETOOTH,
Manifest.permission.BLUETOOTH_ADMIN,
“com.samsung.accessory.permission.ACCESSORY_FRAMEWORK”
“com.samsung.android.providers.context.permission.WRITE_USE_APP_FEATURE_SURVEY”
“com.samsung.WATCH_APP_TYPE.Companion”
“com.samsung.wmanager.ENABLE_NOTIFICATION”},MY_PERMISSIONS_REQUEST);
}
@覆盖
public void onRequestPermissionsResult(int requestCode,@ NonNull String permissions [],@ NonNull int [] grantResults)
{
for(int i:grantResults)
{
Log.d(TAG,“结果:”+ i);
}
开关(requestCode)
{
案例MY_PERMISSIONS_REQUEST:
{
//如果取消请求,结果数组为空。
if(grantResults.length> 0 && grantResults [0] == PackageManager.PERMISSION_GRANTED &&
grantResults [1] == PackageManager.PERMISSION_GRANTED &&
grantResults [2] == PackageManager.PERMISSION_GRANTED &&
grantResults [3] == PackageManager.PERMISSION_GRANTED &&
grantResults [4] == PackageManager.PERMISSION_GRANTED &&
grantResults [5] == PackageManager.PERMISSION_GRANTED)
{
displayMessage(“授予权限”);
}
其他
{
displayMessage(“请接受继续权限。”);
this.finish();
}
}
}
}
private void displayMessage(String message)
{
if(TextUtils.isEmpty(message))
{
返回;
}
Toast.makeText(this,message,Toast.LENGTH_LONG).show();
}
}
代码>
当我运行它时,即使对于蓝牙也没有显示权限请求对话框,应用程序显然会关闭(由于代码)。我在Log中看到以下结果:
D / MainActivity:结果:0
D / MainActivity:结果:0
D / MainActivity:结果:-1
D / MainActivity:结果:-1
D / MainActivity:结果:-1
D / MainActivity:结果:-1
代码>
出于某些原因,Android会自动向我提供蓝牙权限,但不知道如何获得这些三星权限。
答案 0 :(得分:0)
只有specific dangerous permissions需要requesting them at run time。因此,您不需要编写任何与权限相关的代码来授予任何这些权限。